1. পণ্য এবং লাইসেন্স প্রস্তুত করুন
একটি নোড-লকড লাইসেন্স এবং একটি সাধারণ রপ্তানি বৈশিষ্ট্য দিয়ে শুরু করুন। মৌলিক অনুমোদন প্রবাহ কাজ করার পরেই মিটারযুক্ত ব্যবহার যোগ করুন।
ডিভাইস কোটা বর্তমান সক্রিয়করণ অনুযায়ী গণনা হয় এবং মুক্ত করলে ফেরত আসে। সাধারণ লাইসেন্স অফলাইনেও গণনা হয়; ফ্লোটিং লাইসেন্সের লিজ শেষ হলেও কোটা স্বয়ংক্রিয়ভাবে ফেরত আসে।
- কনসোল > পণ্য থেকে পণ্যের ID কপি করুন। একই পণ্যের স্বাক্ষরের পাবলিক কী খুলে প্রতিটি কী ID/পাবলিক কী জোড়া ইনিশিয়ালাইজেশন কোডে বসান; YOUR_PRODUCT_ID, YOUR_KEY_ID এবং YOUR_PUBLIC_KEY বদলান। দ্রুত ইন্টিগ্রেশন থেকেও এই কোড পাওয়া যায়। পণ্যের কনফিগারেশন ফাইল লাগে না; SDK ডিফল্টভাবে https://www.licentivo.com ব্যবহার করে।
- দ্রুত ইন্টিগ্রেশনে, একটি পণ্য তৈরি করুন বা নির্বাচন করুন। এর নীতিতে রপ্তানি নামের একটি বৈশিষ্ট্য সক্রিয় করুন এবং একটি পরীক্ষা লাইসেন্স প্রস্তুত করুন।
2. SDK ইনস্টল করুন
আপনার অ্যাপ প্রকল্পে নিচের কমান্ড চালিয়ে বা বিল্ড ডিপেন্ডেন্সি যোগ করে SDK 0.11.6 ইনস্টল করুন। প্যাকেজ ম্যানেজার SDK সংগ্রহ করে; সোর্স ZIP ডাউনলোড ও এক্সট্র্যাক্ট করা বা স্থানীয় পাথ সেট করার প্রয়োজন নেই।
gem install licentivo-sdk --version 0.11.63. একটি বাস্তব রপ্তানি রক্ষা করুন
অ্যাপ চালু বা সক্রিয় করার সময় SDK শুরু করুন। সক্রিয়করণ ফর্ম থেকে গ্রাহকের কী পড়ে পণ্যের ID ও বিশ্বস্ত কী দিন। অ্যাপ বন্ধ হওয়া পর্যন্ত ক্লায়েন্ট রাখুন। আসল কাজের প্রবেশপথে RunFeature ব্যবহার করে উদাহরণের এক্সপোর্টের বদলে নিজের ফাংশন দিন।
# frozen_string_literal: true
require 'licentivo'
# BEGIN LICENTIVO PRODUCT
# Copy Product ID and all key ID/public key pairs from Console > Products > Signing public keys.
PRODUCT_ID = 'YOUR_PRODUCT_ID'
TRUSTED_KEYS = {'YOUR_KEY_ID' => 'YOUR_PUBLIC_KEY'}.freeze
# END LICENTIVO PRODUCT
def setting(name, fallback)
value = ENV[name]
value.nil? || value.empty? ? fallback : value
end
def export_report(path)
# Replace this write with your existing export operation.
File.write(path, "A report generated by the licensed application.\n")
end
begin
# A GUI supplies the activation input. Later starts use an empty key.
Licentivo::Client.open_product(
PRODUCT_ID, TRUSTED_KEYS,
setting('LICENTIVO_LICENSE_KEY', '')
) do |client|
feature = setting('LICENTIVO_FEATURE', 'export')
path = setting('LICENTIVO_OUTPUT', 'licensed-report.txt')
if setting('LICENTIVO_METERED', '0') == '1'
client.run_metered_feature(feature, 1, setting('LICENTIVO_OPERATION_ID', '')) { export_report(path) }
else
client.run_feature(feature) { export_report(path) }
end
puts "License OK: #{feature} is available\nExport completed: #{path}"
end # Real app: keep the owning block/client alive until shutdown.
rescue StandardError => error
warn error.message
exit 2
end
4. শাটডাউন না হওয়া পর্যন্ত ক্লায়েন্টকে জীবিত রাখুন
এই কমান্ড-লাইন উদাহরণটি একটি অপারেশন সঞ্চালিত করে এবং প্রস্থান করে। একটি ডেস্কটপ অ্যাপ্লিকেশনে, স্টার্টআপে একটি ক্লায়েন্ট খুলুন, এক্সপোর্ট অ্যাকশন থেকে ফিচার কলব্যাক শুরু করুন এবং অ্যাপ্লিকেশনটি প্রস্থান করলেই ক্লায়েন্ট বন্ধ করুন।
সক্রিয়করণের পরে, পরবর্তী সূচনাগুলি LICENTIVO_LICENSE_KEY খালি ছেড়ে দিতে পারে এবং একই ব্যবহারকারী এবং ক্যাশে অবস্থানের অধীনে ব্যক্তিগত শংসাপত্র পুনরুদ্ধার করতে পারে। ব্যবহারকারী অ্যাপ্লিকেশন-ডেটা ডিরেক্টরিতে সেই শংসাপত্রটি রাখুন। বন্ধ হওয়া হার্টবিট বন্ধ করে এবং ভাসমান আসন ফিরিয়ে দেয়; স্বাভাবিক প্রস্থান একটি নোড-লক ডিভাইস নিষ্ক্রিয় করা উচিত নয়.
অফলাইন অ্যাক্সেস শুধুমাত্র তখনই পাওয়া যায় যখন নীতি অনুমতি দেয় এবং স্বাক্ষরিত অনুদান বৈধ থাকে। একটি মেয়াদ উত্তীর্ণ বা অস্বীকৃত বৈশিষ্ট্য অবরুদ্ধ থাকা আবশ্যক. পরিমাপিত অপারেশনগুলির জন্য একটি নেটওয়ার্ক সংযোগ প্রয়োজন৷
open_with_license ব্লকটি ক্লায়েন্টের মালিক। অ্যাপ্লিকেশান লুপটিকে তার জীবনকালের মধ্যে রাখুন এবং প্রতিটি সুরক্ষিত অ্যাকশনের জন্য run_feature আহ্বান করুন। একটি ব্যবসা কলব্যাক ভিতরে থেকে ক্লায়েন্ট বন্ধ করবেন না. Ruby ব্যতিক্রমগুলি SDK ব্যর্থ অপারেশন পরিচালনা করার পরে প্রচারিত হয়।
5. চালান এবং ফলাফল যাচাই করুন
কনসোল > পণ্য থেকে পণ্যের ID কপি করুন। একই পণ্যের স্বাক্ষরের পাবলিক কী খুলে প্রতিটি কী ID/পাবলিক কী জোড়া ইনিশিয়ালাইজেশন কোডে বসান; YOUR_PRODUCT_ID, YOUR_KEY_ID এবং YOUR_PUBLIC_KEY বদলান। দ্রুত ইন্টিগ্রেশন থেকেও এই কোড পাওয়া যায়। পণ্যের কনফিগারেশন ফাইল লাগে না; SDK ডিফল্টভাবে https://www.licentivo.com ব্যবহার করে।
- নিশ্চিত করুন যে এক্সপোর্ট অ্যাক্সেস সহ একটি বৈধ লাইসেন্স licensed-report.txt তৈরি করে৷
- LICENTIVO_LICENSE_KEY সাফ করুন এবং একই ব্যবহারকারীর অ্যাকাউন্ট ব্যবহার করে আবার চালান: সংরক্ষিত শংসাপত্রটি পুনরুদ্ধার করা উচিত।
- লাইসেন্স থেকে অনুপস্থিত একটি বৈশিষ্ট্যে LICENTIVO_FEATURE সেট করুন এবং একটি নতুন ফাইলের নাম LICENTIVO_OUTPUT সেট করুন৷ প্রোগ্রামটিকে অবশ্যই সেই ফাইলটি তৈরি না করে একটি অস্বীকারের প্রতিবেদন করতে হবে।
- শুধুমাত্র একটি অনুমোদিত, মেয়াদ শেষ না হওয়া স্বাক্ষরিত অনুদান দিয়ে একটি অফলাইন রিস্টার্ট পরীক্ষা করুন। পটভূমি রিফ্রেশ ত্রুটির পরে একটি ব্যর্থ বৈশিষ্ট্য পরীক্ষা বাইপাস করবেন না।
$env:LICENTIVO_LICENSE_KEY = 'YOUR_LICENSE_KEY'
ruby main.rbLICENTIVO_LICENSE_KEY=YOUR_LICENSE_KEY ruby main.rbসাধারণ ইন্টিগ্রেশন সমস্যা
পণ্যের ID, প্রতিটি কী ID/পাবলিক কী জোড়া এবং গ্রাহকের লাইসেন্স যাচাই করুন। পাবলিক কী পণ্যের; লাইসেন্স ও ডিভাইস পরিচয়পত্র আলাদা। পরীক্ষার কী বা ব্যবস্থাপনার API Key বিতরণ করবেন না।
বৈশিষ্ট্য অস্বীকার করা হয়েছে, ডিভাইসের সীমা পৌঁছে গেছে বা লাইসেন্সের মেয়াদ শেষ হয়েছে: কনসোলে লাইসেন্স এবং নীতি পরীক্ষা করুন, তারপর গ্রাহককে SDK ত্রুটি দেখান। একটি ব্যর্থ অনুমোদন রপ্তানি ফাংশন কল করা উচিত নয়.
RunFeature বৈশিষ্ট্য অ্যাক্সেস পরীক্ষা করে; মিটারযুক্ত বৈকল্পিক সংরক্ষণ করে এবং কনফিগার করা ব্যবহার নিষ্পত্তি করে। প্রকৃত ব্যবসায়িক কাজের প্রতি একটি স্থিতিশীল অপারেশন আইডি ব্যবহার করুন এবং একটি বাধাপ্রাপ্ত কাজ পুনরুদ্ধার করার আগে এর টেকসই ফলাফল পরিদর্শন করুন।
licentivo লোড করা যাবে না: রত্ন ইনস্টলেশন এবং প্রোগ্রাম এক্সিকিউশন একই Ruby পরিবেশ ব্যবহার করে দেখুন। উইন্ডোজে সোর্স বিল্ডের জন্য, LICENTIVO_CURL_ROOT সেট করুন এবং ম্যাচিং libcurl DLL PATH এ উপলব্ধ করুন।