إعداد "حزمة تطوير البرامج (SDK) للمستهلكين" بلغة JavaScript

اختيار النظام الأساسي: نظام التشغيل Android iOS JavaScript

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

يمكنك إعداد "حزمة SDK الخاصة بمستخدمي JavaScript" باتّباع الخطوات التالية:

  1. تفعيل واجهة برمجة تطبيقات JavaScript للخرائط
  2. إعداد التفويض

تفعيل Maps JavaScript API

تفعيل واجهة برمجة تطبيقات JavaScript للخرائط في Google Cloud Console لمزيد من التفاصيل، يُرجى الاطّلاع على تفعيل واجهات برمجة التطبيقات في مستندات Google Cloud. يؤدي ذلك إلى تفعيل حزمة تطوير البرامج (SDK) للمستهلك لبرنامج JavaScript.

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

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

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

في المقابل، يجب أن تتم المصادقة والتفويض في الخلفية باستخدام بيانات الاعتماد التلقائية للتطبيق المعمول بها في Fleet Engine .

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

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

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

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

على وجه التحديد، يُرجى مراعاة ما يلي في حزمة تطوير البرامج (SDK) للمستهلك المستندة إلى JavaScript من أجل مشاركة مستوى تقدّم الرحلة:

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

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

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

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

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

بخلاف ذلك، تستخدم "حزمة تطوير البرامج (SDK) للمستهلكين في JavaScript" رمزًا مميّزًا صالحًا تم إصداره سابقًا ولا واستدعاء برنامج الجلب.

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

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

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

    • سلسلة token.

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

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

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

مثال -- إنشاء أداة جلب رمز المصادقة المميز

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

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

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

متابعة رحلة في JavaScript