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

জাভাস্ক্রিপ্ট কনজিউমার SDK এর সাহায্যে, আপনার কনজিউমার অ্যাপটি ওয়েব-ভিত্তিক মানচিত্রে ফ্লিট ইঞ্জিনে ট্র্যাক করা যানবাহন এবং অন্যান্য আকর্ষণীয় স্থানগুলির অবস্থান দেখাতে পারে। এটি আপনার কনজিউমার ব্যবহারকারীদের তাদের শিপমেন্টের অগ্রগতি দেখতে দেয়। এই নির্দেশিকাটি ধরে নেয় যে আপনি ফ্লিট ইঞ্জিনের সাথে সম্পর্কিত গুগল ক্লাউড প্রকল্প এবং API কীগুলি সেট আপ করেছেন। বিস্তারিত জানার জন্য ফ্লিট ইঞ্জিন দেখুন।

আপনি এই ধাপগুলি অনুসরণ করে জাভাস্ক্রিপ্ট কনজিউমার SDK সেট আপ করেন:

  1. Maps JavaScript API সক্ষম করুন
  2. অনুমোদন সেট আপ করুন

Maps JavaScript API সক্ষম করুন

আপনার ফ্লিট ইঞ্জিন ইনস্ট্যান্সের জন্য ব্যবহৃত Google Cloud Console প্রকল্পে Maps JavaScript API সক্ষম করুন। আরও বিস্তারিত জানার জন্য, Maps JavaScript API ডকুমেন্টেশনে API সক্ষম করুন দেখুন।

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

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

একটি JWT আপনার সার্ভারে উৎপন্ন হয়, স্বাক্ষরিত হয়, এনক্রিপ্ট করা হয় এবং পরবর্তী সার্ভার ইন্টারঅ্যাকশনের জন্য ক্লায়েন্টের কাছে প্রেরণ করা হয় যতক্ষণ না এটির মেয়াদ শেষ হয় বা আর বৈধ থাকে না।

মূল বিবরণ

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

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

ফ্লিট ইঞ্জিন ডেটার অনুমোদনের ক্ষেত্রে সার্ভার-সাইড এবং ক্লায়েন্ট-সাইড উভয় বাস্তবায়ন জড়িত।

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

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

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

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

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

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

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

  • টোকেনটির মেয়াদ শেষ হওয়ার এক মিনিটের মধ্যে।

অন্যথায়, জাভাস্ক্রিপ্ট কনজিউমার 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
  };
}

টাইপস্ক্রিপ্ট

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,
  };
}

এরপর কি?