با JavaScript Consumer SDK، برنامه مصرف کننده شما می تواند مکان وسایل نقلیه و سایر مکان های مورد علاقه ردیابی شده در Fleet Engine را بر روی یک نقشه مبتنی بر وب نشان دهد. این به مصرف کنندگان شما اجازه می دهد تا پیشرفت سفر راننده را مشاهده کنند. این راهنما فرض میکند که Fleet Engine را با پروژه Google Cloud مرتبط و کلیدهای API تنظیم کردهاید. برای جزئیات بیشتر به Fleet Engine مراجعه کنید.
شما جاوا اسکریپت SDK مصرف کننده را به دنبال این مراحل تنظیم می کنید:
Maps JavaScript API را فعال کنید
Maps JavaScript API را در Google Cloud Console فعال کنید. برای جزئیات بیشتر، به فعال کردن APIها در اسناد Google Cloud مراجعه کنید. این SDK مصرف کننده را برای جاوا اسکریپت فعال می کند.
مجوز را تنظیم کنید
برای فراخوانیهای روش API از محیطهای کماعتماد ، Fleet Engine به استفاده از JSON Web Tokens (JWT) که توسط یک حساب سرویس مناسب امضا شدهاند، نیاز دارد. محیط های کم اعتماد شامل گوشی های هوشمند و مرورگرها هستند. یک JWT در سرور شما ایجاد می شود که یک محیط کاملاً قابل اعتماد است. JWT امضا می شود، رمزگذاری می شود و برای تعاملات بعدی سرور به مشتری ارسال می شود تا زمانی که منقضی شود یا دیگر معتبر نباشد.
باطن شما باید با استفاده از مکانیزم های استاندارد Application Default Credentials احراز هویت و مجوز در برابر Fleet Engine را صادر کند. مطمئن شوید که از JWT هایی استفاده می کنید که توسط یک حساب سرویس مناسب امضا شده اند. برای فهرستی از نقشهای حساب سرویس، نقشهای حساب خدمات Fleet Engine را در Fleet Engine Basics ببینید.
در مقابل، باطن شما باید با استفاده از مکانیزمهای استاندارد Application Default Credentials، احراز هویت و مجوز در برابر Fleet Engine را صادر کند.
مجوز چگونه کار می کند؟
مجوز با دادههای Fleet Engine شامل اجرای سمت سرور و مشتری میشود.
مجوز سمت سرور
قبل از اینکه احراز هویت و مجوز را در برنامه مبتنی بر وب خود تنظیم کنید، سرور پشتیبان شما باید بتواند برای دسترسی به Fleet Engine، JSON Web Tokens را برای برنامه مبتنی بر وب شما صادر کند. برنامه مبتنی بر وب شما این JWT ها را همراه با درخواست های خود ارسال می کند، بنابراین Fleet Engine درخواست ها را به عنوان تأیید شده و مجاز برای دسترسی به داده های موجود در درخواست تشخیص می دهد. برای دستورالعملهای مربوط به اجرای JWT سمت سرور، به شماره JSON Web Tokens در بخش Fleet Engine Essentials مراجعه کنید.
به طور خاص، موارد زیر را برای JavaScript Consumer SDK برای اشتراکگذاری پیشرفت سفر در نظر داشته باشید:- دستورالعمل های کلی برای صدور JSON Web Tokens
- دستورالعمل های سفرهای درخواستی JWT
- توکن نمونه برای عملیات مصرف کننده
مجوز سمت مشتری
هنگامی که از 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
};
}
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,
};
}