راه‌اندازی کیت توسعه نرم‌افزار مصرف‌کننده جاوا اسکریپت

با «کیت توسعه نرم‌افزار مصرف‌کننده جاوااسکریپت»، برنامه مصرف‌کننده شما می‌تواند مکان وسایل نقلیه و دیگر مکان‌های موردعلاقه ردیابی‌شده در Fleet Engine را در نقشه مبتنی بر وب نشان دهد. این کار به کاربران مصرف‌کننده شما امکان می‌دهد پیشرفت محموله‌هایشان را ببینند. این راهنما فرض می‌کند که Fleet Engine را با پروژه Google Cloud و کلیدهای API مرتبط با آن راه‌اندازی کرده‌اید. برای جزئیات، به Fleet Engine مراجعه کنید.

با دنبال کردن این مراحل، «کیت توسعه نرم‌افزار مصرف‌کننده جاوا اسکریپت» را راه‌اندازی می‌کنید:

  1. ‫Maps JavaScript API را فعال کنید.
  2. مجوز را راه‌اندازی کنید.

فعال کردن Maps JavaScript API

Maps JavaScript API را در پروژه «کنسول Google Cloud» که برای نمونه Fleet Engine استفاده می‌کنید فعال کنید. برای جزئیات بیشتر، به فعال کردن میاناهای برنامه‌سازی کاربردی در اسناد Maps JavaScript API مراجعه کنید.

راه‌اندازی کردن مجوز

Fleet Engine برای فراخوانی‌های روش میانای برنامه‌سازی کاربردی از محیط‌های با اعتماد پایین (تلفن‌های هوشمند و مرورگرها) به استفاده از JSON Web Tokens (JWT) نیاز دارد.

JWT از سرور شما منشأ می‌گیرد، امضا و رمزگذاری می‌شود، و برای تعاملات بعدی سرور به کارخواه منتقل می‌شود تا زمانی که منقضی شود یا دیگر معتبر نباشد.

جزئیات کلید

برنامه مصرف‌کننده شما باید کاربران نهایی‌تان را با نقش delivery_consumer از پروژه Google Cloud شما اصالت‌سنجی کند تا فقط اطلاعات مختص مصرف‌کننده را برگرداند. به این ترتیب، Fleet Engine همه اطلاعات دیگر را در پاسخ‌ها فیلتر و ویرایش می‌کند. برای مثال، درطول تکلیف عدم‌دردسترس بودن، هیچ اطلاعات مکانی با کاربر نهایی هم‌رسانی نمی‌شود. نقش‌های حساب سرویس را برای کارهای زمان‌بندی‌شده ببینید.

مجوزدهی چگونه کار می‌کند؟

مجوزدهی با داده‌های Fleet Engine شامل پیاده‌سازی سمت سرور و سمت کارخواه است.

مجوزدهی سمت سرور

قبل‌از راه‌اندازی اصالت‌سنجی و صدور مجوز در برنامه مبتنی بر وب، سرور زیرینه شما باید بتواند «نشان‌های وب JSON» را برای دسترسی به Fleet Engine برای برنامه مبتنی بر وب شما صادر کند. برنامه مبتنی بر وب شما این JWTها را با درخواست‌هایش ارسال می‌کند تا Fleet Engine درخواست‌ها را به‌عنوان درخواست‌های اصالت‌سنجی‌شده و مجاز برای دسترسی به داده‌های موجود در درخواست تشخیص دهد. برای دریافت دستورالعمل‌های مربوط به پیاده‌سازی JWT سمت سرور، به صدور JSON Web Tokens در Fleet Engine Essentials مراجعه کنید.

به‌طور خاص، موارد زیر را برای «کیت توسعه نرم‌افزار مصرف‌کننده جاوااسکریپت» برای ردیابی محموله‌ها به‌خاطر داشته باشید:

مجوزدهی سمت کارخواه

وقتی از «کیت توسعه نرم‌افزار مصرف‌کننده جاوااسکریپت» استفاده می‌کنید، این کیت بااستفاده از واکِشنده کد مجوز، کدی را از سرور درخواست می‌کند. این کار را زمانی انجام می‌دهد که یکی از موارد زیر درست باشد:

  • هیچ کد معتبری وجود ندارد، مثلاً وقتی کیت توسعه نرم‌افزار واکشی‌کننده را در بارگیری صفحه جدید فراخوانی نکرده است، یا وقتی واکشی‌کننده با کد برنگشته است.

  • توکن منقضی شده است.

  • توکن تا یک دقیقه دیگر منقضی می‌شود.

درغیراین‌صورت، «کیت توسعه نرم‌افزار مصرف‌کننده جاوا اسکریپت» از کد معتبر قبلاً صادرشده استفاده می‌کند و واکشان را فراخوانی نمی‌کند.

ایجاد واکشی‌کننده کد مجوز

بااستفاده از این دستورالعمل‌ها، واکِشنده کد مجوزتان را ایجاد کنید:

  • واکِشنده باید ساختار داده‌ای با دو فیلد برگرداند، که در یک Promise به‌صورت زیر پیچیده شده است:

    • رشته token.

    • شماره expiresInSeconds. ژتون پس‌از این مدت زمان بعداز واکشی منقضی می‌شود. واکِشنده کد اصالت‌سنجی باید زمان انقضا را برحسب ثانیه، از زمان واکشی به کتابخانه، همان‌طور که در مثال نشان داده شده است، ارسال کند.

  • واکِشنده باید نشانی وبی را در سرور شما فراخوانی کند تا یک کد بازیابی کند. این نشانی وب (SERVER_TOKEN_URL) به پیاده‌سازی باطن شما بستگی دارد. نشانی وب نمونه زیر برای بخش پشتی برنامه نمونه در GitHub است:

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

مثال - ایجاد واکِشنده نمودافزار اصالت‌سنجی

نمونه‌های زیر نحوه ایجاد واکِشنده کد مجوز را نشان می‌دهد:

JavaScript

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

قدم بعدی چیست