إعداد مكتبة تتبُّع مجموعة JavaScript

قبل استخدام مكتبة تتبع مجموعة JavaScript، تأكد من على دراية وإعداد Fleet Engine. للحصول على التفاصيل، يمكنك مراجعة Fleet Engine

يوضح هذا المستند كيفية تمكين التفويض بين تطبيق صفحة الويب وFleet Engine. بعد إعداد طلباتك المرسَلة إلى Fleet Engine باستخدام الرموز المميّزة الصحيحة لمنح الأذونات، ستكون مستعدًا لتتبُّع مركبة على الخريطة.

إعداد التفويض

يتطلب Fleet Engine استخدام رموز JSON المميزة للويب (JWT) التي تم توقيعها بواسطة حساب خدمة مناسب لطلبات بيانات طريقة واجهة برمجة التطبيقات من مستوى الثقة المنخفضة البيئات. وتشمل البيئات ذات الثقة المنخفضة الهواتف الذكية والمتصفّحات. JWT على الخادم الخاص بك، والتي تُعد بيئة موثوقة بالكامل. رمز JWT توقيعها وتشفيرها وتمريرها إلى العميل في الخادم اللاحق إلى أن تنتهي صلاحيتها أو تصبح غير صالحة.

يجب أن تتم المصادقة والتفويض ضد Fleet Engine باستخدام الواجهة الخلفية. إلى آليات بيانات الاعتماد التلقائية للتطبيق القياسية. الماركة تأكَّد من استخدام ملفات JWT التي تم توقيعها من خلال حساب خدمة مناسب. بالنسبة إلى قائمة بأدوار حساب الخدمة، يُرجى الاطّلاع على أدوار حساب خدمةFleet Engine. في أساسيات Fleet Engine

كيف يعمل التفويض؟

يشمل التفويض باستخدام بيانات Fleet Engine تنفيذًا من جهة العميل والخادم معًا.

التفويض من جهة الخادم

قبل إعداد التفويض في تطبيق تتبُّع الأسطول، يجب أن يكون لدى أن يكون الخادم قادرًا على عرض رموز JSON المميّزة للويب. وبهذه الطريقة، يستخدم Fleet Engine يتعرف على الطلبات الواردة من تطبيقك على أنه مصرّح له بالوصول البيانات الواردة في الطلب. للحصول على تعليمات حول تنفيذ JWT من جهة الخادم، يمكنك الاطّلاع على اصدِر رموز الويب المميّزة JSON ضِمن Fleet Engine Essentials.

لإنشاء رموز مميزة من خادمك عند تنفيذ تتبع عدد الأجهزة، راجع التالي:

التفويض من جهة العميل

عند استخدام مكتبة تتبع مجموعة JavaScript، فإنها تطلب رمزًا مميزًا من الخادم باستخدام أداة استرجاع الرمز المميز للتفويض. ويتم ذلك في حال استيفاء أيٍّ من المتطلّبات التالية:

  • ولا يتوفّر رمز مميّز صالح، كأن لا تستدعي حزمة تطوير البرامج (SDK) أداة الجلب على تحميل صفحة جديدة أو في حال عدم عرض برنامج الجلب مع رمز مميّز.

  • انتهت صلاحية الرمز المميّز.

  • ستنتهي صلاحية الرمز المميّز خلال دقيقة واحدة.

بخلاف ذلك، تستخدم مكتبة تتبُّع الأسطول في JavaScript الرمز المميّز الصالح الذي تم إصداره سابقًا ولا تستدعي أداة الجلب.

إنشاء أداة جلب رمز مميّز لمنح الأذونات

يمكنك إنشاء أداة استرجاع الرمز المميّز للتفويض باتّباع الإرشادات التالية:

  • يجب أن يعرض برنامج الجلب بنية بيانات من حقلين، ملفوفين في Promise على النحو التالي:

    • سلسلة token.

    • رقم expiresInSeconds تنتهي صلاحية الرمز المميز خلال هذه المدة الزمنية بعد الجلب. يجب أن يجتاز برنامج استرجاع الرمز المميّز للمصادقة تاريخ انتهاء الصلاحية. الوقت بالثواني، بدءًا من وقت الجلب إلى المكتبة كما هو موضّح في المثال.

  • يجب أن يستدعي برنامج الجلب عنوان URL على خادمك لاسترداد رمز مميز. هذا النمط يعتمد عنوان URL SERVER_TOKEN_URL على التنفيذ في الخلفية. تشير رسالة الأشكال البيانية فيما يلي مثال على عنوان URL لنموذج واجهة التطبيق على GitHub:

    • https://SERVER_URL/token/fleet_reader

مثال: إنشاء أداة لاسترجاع الرمز المميّز للتفويض

توضِّح الأمثلة التالية كيفية إنشاء أداة استرجاع الرمز المميّز للتفويض:

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

الخطوات التالية