জাভাস্ক্রিপ্ট কনজিউমার SDK সেট-আপ করা

JavaScript Consumer SDK-এর সাহায্যে, আপনার গ্রাহক অ্যাপটি Fleet Engine-এ ট্র্যাক করা গাড়ির লোকেশন এবং অন্যান্য প্রাসঙ্গিক লোকেশন ওয়েব-ভিত্তিক ম্যাপে দেখাতে পারে। এর ফলে আপনার গ্রাহক ব্যবহারকারীরা তাদের শিপমেন্টের অগ্রগতি দেখতে পাবেন। এই গাইড ধরে নেয় যে আপনি Fleet Engine সেট-আপ করেছেন এবং এর সাথে সম্পর্কিত Google Cloud প্রোজেক্ট এবং API কী আছে। আরও জানতে Fleet Engine দেখুন।

আপনি এইসব ধাপ অনুসরণ করে JavaScript Consumer SDK সেট-আপ করেছেন:

  1. Maps JavaScript API চালু করুন।
  2. অনুমোদন সেট-আপ করুন।

Maps JavaScript API চালু করা

আপনার Fleet Engine ইনস্ট্যান্সের জন্য ব্যবহার করা Google Cloud Console প্রোজেক্টে Maps JavaScript API চালু করুন। আরও বিবরণের জন্য, Maps JavaScript API ডকুমেন্টেশনে API চালু করুন বিকল্প দেখুন।

অনুমোদন সেট-আপ করুন

কম-বিশ্বস্ত পরিবেশ: স্মার্টফোন এবং ব্রাউজার থেকে API মেথড কলের জন্য Fleet Engine-এর JSON ওয়েব টোকেন (JWTs) ব্যবহার করা প্রয়োজন।

আপনার সার্ভারে একটি JWT তৈরি হয়, সেটি সাইন ও এনক্রিপ্ট করা হয় এবং ক্লায়েন্টের কাছে পাঠানো হয় যাতে মেয়াদ শেষ না হওয়া বা আর বৈধ না থাকা পর্যন্ত সার্ভারের সাথে ইন্টার‍্যাক্ট করা যায়।

গুরুত্বপূর্ণ বিবরণ

আপনার কনজিউমার অ্যাপকে আপনার Google Cloud প্রোজেক্ট থেকে delivery_consumer ভূমিকা সহ আপনার ব্যবহারকারীদের যাচাই করতে হবে যাতে শুধুমাত্র কনজিউমার-নির্দিষ্ট তথ্য ফেরত দেওয়া যায়। এইভাবে, Fleet Engine উত্তরে থাকা অন্যান্য সব তথ্য ফিল্টার ও এডিট করে। যেমন, কোনও অনুপলভ্যতা টাস্ক চলাকালীন, ব্যবহারকারীর সাথে কোনও লোকেশন তথ্য শেয়ার করা হয় না। শিডিউল করা টাস্কের জন্য পরিষেবা অ্যাকাউন্ট ভূমিকা দেখুন।

অনুমোদন কীভাবে কাজ করে?

Fleet Engine ডেটার সাথে অনুমোদনের মধ্যে সার্ভার-সাইড এবং ক্লায়েন্ট-সাইড উভয়ই অন্তর্ভুক্ত বাস্তবায়ন।

সার্ভার-সাইড অনুমোদন

আপনার ওয়েব-ভিত্তিক অ্যাপ্লিকেশনে যাচাইকরণ ও অনুমোদন সেট-আপ করার আগে, আপনার ব্যাকএন্ড সার্ভারকে Fleet Engine অ্যাক্সেস করার জন্য আপনার ওয়েব-ভিত্তিক অ্যাপ্লিকেশনে JSON ওয়েব টোকেন ইস্যু করতে পারতে হবে। আপনার ওয়েব-ভিত্তিক অ্যাপ্লিকেশন অনুরোধের সাথে এই JWT পাঠায় যাতে Fleet Engine অনুরোধটি যাচাইকৃত এবং অনুরোধে ডেটা অ্যাক্সেস করার জন্য অনুমোদিত হিসেবে শনাক্ত করে। সার্ভার-সাইড JWT প্রয়োগ করার নির্দেশাবলীর জন্য, Fleet Engine Essentials-এর অধীনে JSON Web Tokens ইস্যু করুন দেখুন।

বিশেষ করে, শিপমেন্ট ট্র্যাক করার জন্য JavaScript Consumer SDK-এর ক্ষেত্রে নিম্নলিখিত বিষয়গুলি মনে রাখবেন:

ক্লায়েন্ট-সাইড অনুমোদন

আপনি JavaScript Consumer SDK ব্যবহার করলে, এটি একটি অনুমোদন টোকেন ফেচার ব্যবহার করে সার্ভার থেকে একটি টোকেনের অনুরোধ করে। নিম্নলিখিতগুলির মধ্যে যেকোনও একটি সঠিক হলে এটি করা হয়:

  • কোনও বৈধ টোকেন নেই, যেমন SDK নতুন পৃষ্ঠা লোড করার সময় ফেচারকে কল করেনি অথবা ফেচার টোকেন সহ ফিরে আসেনি।

  • টোকেনের মেয়াদ শেষ হয়ে গেছে।

  • টোকেনের মেয়াদ শেষ হতে এক মিনিটেরও কম সময় বাকি আছে।

অন্যথায়, JavaScript Consumer SDK আগে ইস্যু করা, সঠিক টোকেন ব্যবহার করে এবং ফেচারকে কল করে না।

একটি অনুমোদন টোকেন ফেচার তৈরি করুন

এইসব নির্দেশিকা ব্যবহার করে আপনার অথরাইজেশন টোকেন ফেচার তৈরি করুন:

  • ফেচারকে অবশ্যই দুটি ফিল্ড সহ একটি ডেটা স্ট্রাকচার রিটার্ন করতে হবে, যা Promise-এ এইভাবে র‍্যাপ করা থাকে:

    • একটি স্ট্রিং token।

    • expiresInSeconds নম্বর। ফেচ করার পরে এই পরিমাণ সময়ের মধ্যে টোকেনের মেয়াদ শেষ হয়ে যায়। যাচাইকরণ টোকেন ফেচারকে অবশ্যই লাইব্রেরিতে ফেচ করার সময় থেকে সেকেন্ডে মেয়াদ শেষ হওয়ার সময় পাস করতে হবে, যেমন উদাহরণে দেখানো হয়েছে।

  • টোকেন ফিরিয়ে আনতে ফেচারকে আপনার সার্ভারে একটি URL কল করতে হবে। এই URL--SERVER_TOKEN_URL--আপনার ব্যাকএন্ড ইমপ্লিমেন্টেশনের উপর নির্ভর করে। নিম্নলিখিত উদাহরণ URLটি GitHub-এ স্যাম্পেল অ্যাপ ব্যাকএন্ডের জন্য:

    • https://SERVER_URL/token/delivery_consumer/TRACKING_ID

উদাহরণ - যাচাইকরণ টোকেন ফেচার তৈরি করুন

নিচে দেওয়া উদাহরণ থেকে জানতে পারবেন কীভাবে অথরাইজেশন টোকেন ফেচার তৈরি করতে হয়:

জাভাস্ক্রিপ্ট

async function authTokenFetcher(options) {
  // options is a record containing two keys called
  // serviceType and context. The developer should
  // generate the correct SERVER_TOKEN_URL and request
  // based on the values of these fields.
  const response = await fetch(SERVER_TOKEN_URL);
  if (!response.ok) {
    throw new Error(response.statusText);
  }
  const data = await response.json();
  return {
    token: data.Token,
    expiresInSeconds: data.ExpiresInSeconds
  };
}

TypeScript

function authTokenFetcher(options: {
  serviceType: google.maps.journeySharing.FleetEngineServiceType,
  context: google.maps.journeySharing.AuthTokenContext,
}): Promise<google.maps.journeySharing.AuthToken> {
  // The developer should generate the correct
  // SERVER_TOKEN_URL based on options.
  const response = await fetch(SERVER_TOKEN_URL);
  if (!response.ok) {
    throw new Error(response.statusText);
  }
  const data = await response.json();
  return {
    token: data.token,
    expiresInSeconds: data.ExpiresInSeconds,
  };
}

এর পরে কী করতে হবে