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

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

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

  1. মানচিত্র জাভাস্ক্রিপ্ট API সক্ষম করুন
  2. অনুমোদন সেট আপ করুন

মানচিত্র জাভাস্ক্রিপ্ট API সক্ষম করুন৷

Google ক্লাউড কনসোল প্রকল্পে মানচিত্র জাভাস্ক্রিপ্ট API সক্ষম করুন যা আপনি আপনার ফ্লিট ইঞ্জিন উদাহরণের জন্য ব্যবহার করেন৷ আরও বিশদ বিবরণের জন্য, মানচিত্র জাভাস্ক্রিপ্ট API ডকুমেন্টেশনে API গুলি সক্ষম করুন দেখুন৷

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

ফ্লিট ইঞ্জিনের জন্য নিম্ন-বিশ্বাসের পরিবেশ থেকে API পদ্ধতি কলের জন্য একটি উপযুক্ত পরিষেবা অ্যাকাউন্ট দ্বারা স্বাক্ষরিত JSON ওয়েব টোকেন (JWTs) ব্যবহার করা প্রয়োজন। কম-বিশ্বাসের পরিবেশে স্মার্টফোন এবং ব্রাউজার অন্তর্ভুক্ত। একটি JWT আপনার সার্ভারে উদ্ভূত হয়, যা একটি সম্পূর্ণ বিশ্বস্ত পরিবেশ । JWT স্বাক্ষরিত, এনক্রিপ্ট করা হয় এবং পরবর্তী সার্ভার ইন্টারঅ্যাকশনের জন্য ক্লায়েন্টের কাছে পাঠানো হয় যতক্ষণ না এটি মেয়াদ শেষ হয় বা আর বৈধ না হয়।

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

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

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

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

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

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

বিশেষত, শিপমেন্ট ট্র্যাক করার জন্য জাভাস্ক্রিপ্ট কনজিউমার 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
  };
}

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

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

এরপর কি