با «کیت توسعه نرمافزار مصرفکننده جاوااسکریپت»، برنامه مصرفکننده شما میتواند مکان وسایل نقلیه و دیگر مکانهای موردعلاقه ردیابیشده در Fleet Engine را در نقشه مبتنی بر وب نشان دهد. این کار به مصرفکنندگان شما امکان میدهد پیشرفت سفر راننده را ببینند. این راهنما فرض میکند که Fleet Engine را با کلیدهای میانای برنامهسازی کاربردی و پروژه Google Cloud مرتبط با آن راهاندازی کردهاید. برای جزئیات، به Fleet Engine مراجعه کنید.
با دنبال کردن این مراحل، «کیت توسعه نرمافزار مصرفکننده جاوا اسکریپت» را راهاندازی میکنید:
فعال کردن Maps JavaScript API
Maps JavaScript API را در «کنسول Google Cloud» فعال کنید. برای جزئیات بیشتر، فعال کردن میاناهای برنامهسازی کاربردی را در اسناد Google Cloud ببینید. با این کار، «کیت توسعه نرمافزار مصرفکننده» برای جاوا اسکریپت فعال میشود.
راهاندازی کردن مجوز
Fleet Engine برای فراخوانیهای روش میانای برنامهسازی کاربردی از محیطهای با اعتماد پایین (تلفنهای هوشمند و مرورگرها) به استفاده از JSON Web Tokens (JWT) نیاز دارد.
JWT از سرور شما منشأ میگیرد، امضا و رمزگذاری میشود، و برای تعاملات بعدی سرور به کارخواه منتقل میشود تا زمانی که منقضی شود یا دیگر معتبر نباشد.
جزئیات کلید
- از اعتبارنامههای پیشفرض برنامه برای اصالتسنجی و صدور مجوز در Fleet Engine استفاده کنید.
- از حساب سرویس مناسبی برای امضای JWT استفاده کنید. نقشهای Fleet Engine serviceaccount را در مبانی Fleet Engine ببینید.
مجوزدهی چگونه کار میکند؟
مجوزدهی با دادههای Fleet Engine شامل پیادهسازی سمت سرور و سمت کارخواه است.
مجوزدهی سمت سرور
قبلاز راهاندازی اصالتسنجی و صدور مجوز در برنامه مبتنی بر وب، سرور زیرینه شما باید بتواند «نشانهای وب JSON» را برای دسترسی به Fleet Engine برای برنامه مبتنی بر وب شما صادر کند. برنامه مبتنی بر وب شما این JWTها را با درخواستهایش ارسال میکند تا Fleet Engine درخواستها را بهعنوان درخواستهای اصالتسنجیشده و مجاز برای دسترسی به دادههای موجود در درخواست تشخیص دهد. برای دریافت دستورالعملهای مربوط به پیادهسازی JWT سمت سرور، به صدور JSON Web Tokens در Fleet Engine Essentials مراجعه کنید.
بهطور خاص، موارد زیر را برای «کیت توسعه نرمافزار مصرفکننده جاوا اسکریپت» برای همرسانی پیشرفت سفر درنظر داشته باشید:- دستورالعملهای کلی برای صدور «ژتونهای وب JSON»
- رهنمودهای JWT سفرهای درخواستی
- نمونه رمز برای عملیات مصرفکننده
مجوزدهی سمت کارخواه
وقتی از «کیت توسعه نرمافزار مصرفکننده جاوااسکریپت» استفاده میکنید، این کیت بااستفاده از واکِشنده کد مجوز، کدی را از سرور درخواست میکند. این کار را زمانی انجام میدهد که یکی از موارد زیر درست باشد:
هیچ کد معتبری وجود ندارد، مثلاً وقتی کیت توسعه نرمافزار واکشیکننده را در بارگیری صفحه جدید فراخوانی نکرده است، یا وقتی واکشیکننده با کد برنگشته است.
توکن منقضی شده است.
توکن تا یک دقیقه دیگر منقضی میشود.
درغیراینصورت، «کیت توسعه نرمافزار مصرفکننده جاوا اسکریپت» از کد معتبر قبلاً صادرشده استفاده میکند و واکشان را فراخوانی نمیکند.
ایجاد واکشیکننده کد مجوز
بااستفاده از این دستورالعملها، واکِشنده کد مجوزتان را ایجاد کنید:
واکِشنده باید ساختار دادهای با دو فیلد برگرداند، که در یک
Promiseبهصورت زیر پیچیده شده است:رشته
token.شماره
expiresInSeconds. ژتون پساز این مدت زمان بعداز واکشی منقضی میشود. واکِشنده کد اصالتسنجی باید زمان انقضا را برحسب ثانیه، از زمان واکشی به کتابخانه، همانطور که در مثال نشان داده شده است، ارسال کند.
واکِشنده باید نشانی وبی را در سرور شما فراخوانی کند تا یک کد بازیابی کند. این نشانی وب (
SERVER_TOKEN_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,
};
}
قدم بعدی چیست
دنبال کردن سفر در جاوا اسکریپت