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 ডাউনলোড ও এক্সট্র্যাক্ট করা বা স্থানীয় পাথ সেট করার প্রয়োজন নেই।
npm install @licentivo/sdk@0.11.63. একটি বাস্তব রপ্তানি রক্ষা করুন
অ্যাপ চালু বা সক্রিয় করার সময় SDK শুরু করুন। সক্রিয়করণ ফর্ম থেকে গ্রাহকের কী পড়ে পণ্যের ID ও বিশ্বস্ত কী দিন। অ্যাপ বন্ধ হওয়া পর্যন্ত ক্লায়েন্ট রাখুন। আসল কাজের প্রবেশপথে RunFeature ব্যবহার করে উদাহরণের এক্সপোর্টের বদলে নিজের ফাংশন দিন।
import {writeFile} from 'node:fs/promises';
import {Client} from '@licentivo/sdk'; // Installed package: import from '@licentivo/sdk'.
// BEGIN LICENTIVO PRODUCT
// Copy Product ID and all key ID/public key pairs from Console > Products > Signing public keys.
const PRODUCT_ID = 'YOUR_PRODUCT_ID';
const TRUSTED_KEYS = {'YOUR_KEY_ID': 'YOUR_PUBLIC_KEY'};
// END LICENTIVO PRODUCT
export async function exportReport(path) {
// Replace this write with your existing, non-metered export operation.
await writeFile(path, 'A report generated by the licensed application.\n', {mode: 0o600});
}
async function main() {
// In Electron, create this in the main process, using customer activation input.
const client = await Client.openProduct(
PRODUCT_ID, TRUSTED_KEYS,
process.env.LICENTIVO_LICENSE_KEY ?? '',
error => console.error('Background verification:', error.message),
);
try {
const feature = process.env.LICENTIVO_FEATURE ?? 'export';
const path = process.env.LICENTIVO_OUTPUT ?? 'licensed-report.txt';
const action = () => exportReport(path);
if (process.env.LICENTIVO_METERED === '1') {
await client.runMeteredFeature(feature, 1, process.env.LICENTIVO_OPERATION_ID ?? '', action);
} else {
await client.runFeature(feature, action);
}
console.log(`License OK: ${feature} is available\nExport completed: ${path}`);
} finally {
await client.close(); // In your application, close only when the app exits.
}
}
main().catch(error => {console.error(error.message); process.exitCode = 2;});
4. শাটডাউন না হওয়া পর্যন্ত ক্লায়েন্টকে জীবিত রাখুন
এই কমান্ড-লাইন উদাহরণটি একটি অপারেশন সঞ্চালিত করে এবং প্রস্থান করে। একটি ডেস্কটপ অ্যাপ্লিকেশনে, স্টার্টআপে একটি ক্লায়েন্ট খুলুন, এক্সপোর্ট অ্যাকশন থেকে ফিচার কলব্যাক শুরু করুন এবং অ্যাপ্লিকেশনটি প্রস্থান করলেই ক্লায়েন্ট বন্ধ করুন।
সক্রিয়করণের পরে, পরবর্তী সূচনাগুলি LICENTIVO_LICENSE_KEY খালি ছেড়ে দিতে পারে এবং একই ব্যবহারকারী এবং ক্যাশে অবস্থানের অধীনে ব্যক্তিগত শংসাপত্র পুনরুদ্ধার করতে পারে। ব্যবহারকারী অ্যাপ্লিকেশন-ডেটা ডিরেক্টরিতে সেই শংসাপত্রটি রাখুন। বন্ধ হওয়া হার্টবিট বন্ধ করে এবং ভাসমান আসন ফিরিয়ে দেয়; স্বাভাবিক প্রস্থান একটি নোড-লক ডিভাইস নিষ্ক্রিয় করা উচিত নয়.
অফলাইন অ্যাক্সেস শুধুমাত্র তখনই পাওয়া যায় যখন নীতি অনুমতি দেয় এবং স্বাক্ষরিত অনুদান বৈধ থাকে। একটি মেয়াদ উত্তীর্ণ বা অস্বীকৃত বৈশিষ্ট্য অবরুদ্ধ থাকা আবশ্যক. পরিমাপিত অপারেশনগুলির জন্য একটি নেটওয়ার্ক সংযোগ প্রয়োজন৷
Electronে, মূল প্রক্রিয়ায় ক্লায়েন্টের মালিক হন এবং একটি সংকীর্ণ IPC ইন্টারফেসের মাধ্যমে শুধুমাত্র প্রয়োজনীয় সুরক্ষিত ক্রিয়াগুলি প্রকাশ করুন৷ রানফিচারের জন্য অপেক্ষা করুন এবং বন্ধ করুন; ক্লায়েন্টকে আজীবন আবেদনের জন্য জীবিত রাখুন। একটি async কলব্যাক সাফল্যের রিপোর্ট করার আগে অবশ্যই শেষ করতে হবে৷
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'
node main.mjsLICENTIVO_LICENSE_KEY=YOUR_LICENSE_KEY node main.mjsসাধারণ ইন্টিগ্রেশন সমস্যা
পণ্যের ID, প্রতিটি কী ID/পাবলিক কী জোড়া এবং গ্রাহকের লাইসেন্স যাচাই করুন। পাবলিক কী পণ্যের; লাইসেন্স ও ডিভাইস পরিচয়পত্র আলাদা। পরীক্ষার কী বা ব্যবস্থাপনার API Key বিতরণ করবেন না।
বৈশিষ্ট্য অস্বীকার করা হয়েছে, ডিভাইসের সীমা পৌঁছে গেছে বা লাইসেন্সের মেয়াদ শেষ হয়েছে: কনসোলে লাইসেন্স এবং নীতি পরীক্ষা করুন, তারপর গ্রাহককে SDK ত্রুটি দেখান। একটি ব্যর্থ অনুমোদন রপ্তানি ফাংশন কল করা উচিত নয়.
RunFeature বৈশিষ্ট্য অ্যাক্সেস পরীক্ষা করে; মিটারযুক্ত বৈকল্পিক সংরক্ষণ করে এবং কনফিগার করা ব্যবহার নিষ্পত্তি করে। প্রকৃত ব্যবসায়িক কাজের প্রতি একটি স্থিতিশীল অপারেশন আইডি ব্যবহার করুন এবং একটি বাধাপ্রাপ্ত কাজ পুনরুদ্ধার করার আগে এর টেকসই ফলাফল পরিদর্শন করুন।
মডিউল পাওয়া যায়নি: একই প্রকল্পে @licentivo/sdk ইনস্টল করুন যাতে main.mjs রয়েছে। একটি কনফিগার করা proxy_url এর অতিরিক্ত আপনার Node.js সংস্করণের সাথে সামঞ্জস্যপূর্ণ ঐচ্ছিক undici প্যাকেজ প্রয়োজন।