باستخدام حزمة تطوير البرامج (SDK) الخاصة بمستهلك JavaScript، يمكن لتطبيق المستهلك عرض موقع المركبات والمواقع الأخرى ذات الأهمية التي يتم تتبعها في Fleet Engine على أساس الويب الخريطة. يتيح ذلك للمستهلكين الاطّلاع على مدى تقدّم تجربة السائق. يفترض هذا الدليل أنك أعددت Fleet Engine باستخدام Google Cloud المرتبط به. المشروع ومفاتيح واجهة برمجة التطبيقات. يُرجى الاطّلاع على Fleet Engine لمعرفة التفاصيل.
يمكنك إعداد "حزمة SDK الخاصة بمستخدمي JavaScript" باتّباع الخطوات التالية:
تفعيل 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 من أجل مشاركة الرحلة:- الإرشادات العامة لإصدار الرموز المميّزة للويب JSON
- إرشادات JWT للرحلات عند الطلب
- مثال على رمز مميّز لعملية خاصة بالمستهلك
التفويض من جهة العميل
عند استخدام حزمة تطوير البرامج (SDK) الخاصة بمستهلك JavaScript، فإنها تطلب رمزًا مميزًا من الخادم باستخدام أداة استرجاع الرمز المميز للتفويض. ويتم ذلك في حال استيفاء أيٍّ من المتطلّبات التالية:
ولا يتوفّر رمز مميّز صالح، كما هو الحال عندما لا تستدعي حزمة تطوير البرامج (SDK) أداة الجلب في تحميل صفحة جديدة أو في حال عدم عرض برنامج الجلب مع رمز مميّز.
انتهت صلاحية الرمز المميّز.
ستنتهي صلاحية الرمز المميّز خلال دقيقة واحدة.
بخلاف ذلك، تستخدم حزمة JavaScript Consumer SDK الرمز المميّز الصالح الذي تم إصداره سابقًا ولا تستدعي أداة الجلب.
إنشاء برنامج لاسترجاع الرمز المميّز للتفويض
يمكنك إنشاء أداة استرجاع الرمز المميّز للتفويض باتّباع الإرشادات التالية:
يجب أن يعرض أداة الجلب بنية بيانات تتضمّن حقلَين، يتم لفّهما في علامة
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,
};
}