JavaScript Consumer SDK را تنظیم کنید

پلتفرم را انتخاب کنید: Android iOS JavaScript

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

شما جاوا اسکریپت SDK مصرف کننده را به دنبال این مراحل تنظیم می کنید:

  1. Maps JavaScript API را فعال کنید
  2. مجوز را تنظیم کنید

Maps JavaScript API را فعال کنید

Maps JavaScript API را در Google Cloud Console فعال کنید. برای جزئیات بیشتر، به فعال کردن APIها در اسناد Google Cloud مراجعه کنید. این SDK مصرف کننده را برای جاوا اسکریپت فعال می کند.

مجوز را تنظیم کنید

Fleet Engine به استفاده از JSON Web Tokens (JWT) نیاز دارد که توسط یک حساب سرویس مناسب برای فراخوانی‌های روش API از محیط‌های کم‌اعتماد امضا شده است. محیط های کم اعتماد شامل گوشی های هوشمند و مرورگرها هستند. یک JWT در سرور شما ایجاد می شود که یک محیط کاملاً قابل اعتماد است. JWT امضا می شود، رمزگذاری می شود و برای تعاملات بعدی سرور به مشتری ارسال می شود تا زمانی که منقضی شود یا دیگر معتبر نباشد.

باطن شما باید با استفاده از مکانیزم های استاندارد Application Default Credentials احراز هویت و مجوز در برابر Fleet Engine را صادر کند. مطمئن شوید که از JWT هایی استفاده می کنید که توسط یک حساب سرویس مناسب امضا شده اند. برای فهرستی از نقش‌های حساب سرویس، نقش‌های حساب خدمات Fleet Engine را در Fleet Engine Basics ببینید.

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

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

مجوز سمت سرور

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

به طور خاص، موارد زیر را برای JavaScript Consumer SDK برای اشتراک گذاری سفر در نظر داشته باشید:

مجوز سمت مشتری

هنگامی که از JavaScript Consumer SDK استفاده می کنید، با استفاده از یک واکشی نشانه مجوز از سرور یک رمز درخواست می کند. زمانی این کار را انجام می دهد که یکی از موارد زیر درست باشد:

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

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

  • توکن در عرض یک دقیقه پس از انقضا است.

در غیر این صورت، JavaScript Consumer SDK از توکن معتبر و صادر شده قبلی استفاده می کند و واکشی را فراخوانی نمی کند.

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

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

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

    • یک token رشته

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

  • واکشی باید یک URL در سرور شما برای بازیابی یک نشانه فراخوانی کند . این URL - SERVER_TOKEN_URL - به پیاده سازی backend شما بستگی دارد. URL مثال زیر مربوط به نمونه پشتیبان برنامه در GitHub است:

    • https://SERVER_URL/token/consumer/TRIPID

مثال -- یک واکشی نشانه احراز هویت ایجاد کنید

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

جاوا اسکریپت

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

بعدش چی

یک سفر را در جاوا اسکریپت دنبال کنید