JavaScript Consumer SDK را تنظیم کنید
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
با JavaScript Consumer SDK، برنامه مصرف کننده شما می تواند مکان وسایل نقلیه و سایر مکان های مورد علاقه ردیابی شده در Fleet Engine را بر روی یک نقشه مبتنی بر وب نشان دهد. این به کاربران مصرف کننده شما امکان می دهد پیشرفت محموله های خود را مشاهده کنند. این راهنما فرض میکند که Fleet Engine را با پروژه Google Cloud مرتبط و کلیدهای API تنظیم کردهاید. برای جزئیات بیشتر به Fleet Engine مراجعه کنید.
شما جاوا اسکریپت SDK مصرف کننده را به دنبال این مراحل تنظیم می کنید:
- Maps JavaScript API را فعال کنید .
- مجوز را تنظیم کنید .
Maps JavaScript API را فعال کنید
Maps JavaScript API را در پروژه Google Cloud Console که برای نمونه Fleet Engine خود استفاده میکنید، فعال کنید. برای جزئیات بیشتر، به فعال کردن APIها در اسناد Maps JavaScript API مراجعه کنید.
مجوز را تنظیم کنید
Fleet Engine به استفاده از JSON Web Tokens (JWT) برای تماسهای روش API از محیطهای کماعتماد : گوشیهای هوشمند و مرورگرها نیاز دارد.
یک JWT در سرور شما ایجاد می شود، امضا می شود، رمزگذاری می شود و برای تعاملات بعدی سرور به مشتری ارسال می شود تا زمانی که منقضی شود یا دیگر معتبر نباشد.
جزئیات کلیدی
برنامه مصرف کننده شما باید کاربران نهایی شما را با نقش
delivery_consumer
از پروژه Google Cloud شما احراز هویت کند تا فقط اطلاعات مربوط به مصرف کننده را بازگرداند. به این ترتیب، Fleet Engine تمام اطلاعات دیگر موجود در پاسخ ها را فیلتر و ویرایش می کند. به عنوان مثال، در طول یک کار در دسترس نبودن، هیچ اطلاعات مکانی با کاربر نهایی به اشتراک گذاشته نمی شود. برای کارهای برنامه ریزی شده به
نقش های حساب سرویس مراجعه کنید.
مجوز چگونه کار می کند؟
مجوز با دادههای Fleet Engine شامل اجرای سمت سرور و مشتری میشود.
مجوز سمت سرور
قبل از اینکه احراز هویت و مجوز را در برنامه مبتنی بر وب خود تنظیم کنید، سرور پشتیبان شما باید بتواند برای دسترسی به Fleet Engine، JSON Web Tokens را برای برنامه مبتنی بر وب شما صادر کند. برنامه مبتنی بر وب شما این JWT ها را همراه با درخواست های خود ارسال می کند، بنابراین Fleet Engine درخواست ها را به عنوان تأیید شده و مجاز برای دسترسی به داده های موجود در درخواست تشخیص می دهد. برای دستورالعملهای مربوط به اجرای JWT سمت سرور، به شماره JSON Web Tokens در بخش Fleet Engine Essentials مراجعه کنید.
به طور خاص، موارد زیر را برای JavaScript Consumer SDK برای ردیابی محموله ها در نظر داشته باشید:
مجوز سمت مشتری
هنگامی که از JavaScript Consumer SDK استفاده می کنید، با استفاده از یک واکشی نشانه مجوز از سرور یک رمز درخواست می کند. زمانی این کار را انجام می دهد که یکی از موارد زیر درست باشد:
در غیر این صورت، JavaScript Consumer SDK از توکن معتبر و صادر شده قبلی استفاده می کند و واکشی را فراخوانی نمی کند.
یک واکشی نشانه مجوز ایجاد کنید
با استفاده از این دستورالعمل ها واکشی نشانه مجوز خود را ایجاد کنید:
واکشی باید یک ساختار داده با دو فیلد را برگرداند که در یک Promise
به صورت زیر پیچیده شده است:
واکشی باید یک URL در سرور شما برای بازیابی یک نشانه فراخوانی کند . این URL - SERVER_TOKEN_URL
- به پیاده سازی backend شما بستگی دارد. URL مثال زیر مربوط به نمونه پشتیبان برنامه در GitHub است:
-
https://SERVER_URL/token/delivery_consumer/TRACKING_ID
مثال - یک واکشی نشانه احراز هویت ایجاد کنید
مثالهای زیر نحوه ایجاد یک واکشی نشانه مجوز را نشان میدهند:
جاوا اسکریپت
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,
};
}
بعدش چی
جز در مواردی که غیر از این ذکر شده باشد،محتوای این صفحه تحت مجوز Creative Commons Attribution 4.0 License است. نمونه کدها نیز دارای مجوز Apache 2.0 License است. برای اطلاع از جزئیات، به خطمشیهای سایت Google Developers مراجعه کنید. جاوا علامت تجاری ثبتشده Oracle و/یا شرکتهای وابسته به آن است.
تاریخ آخرین بهروزرسانی 2025-09-04 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-09-04 بهوقت ساعت هماهنگ جهانی."],[[["\u003cp\u003eThe JavaScript Consumer SDK enables your web application to display the real-time location of vehicles and other points of interest tracked within Fleet Engine, enhancing shipment visibility for consumers.\u003c/p\u003e\n"],["\u003cp\u003ePrior to implementation, ensure you have a Google Cloud project configured with Fleet Engine, including necessary API keys and the Maps JavaScript API enabled.\u003c/p\u003e\n"],["\u003cp\u003eSecure your application by setting up authorization using JSON Web Tokens (JWTs) issued by your backend server, enabling authenticated access to Fleet Engine data.\u003c/p\u003e\n"],["\u003cp\u003eDevelop an authorization token fetcher on the client-side to retrieve and manage JWTs, ensuring seamless communication between your web application and Fleet Engine.\u003c/p\u003e\n"],["\u003cp\u003eRemember to adhere to the provided guidelines for generating JWTs and implementing the authorization token fetcher to maintain security and data integrity.\u003c/p\u003e\n"]]],[],null,["With the JavaScript Consumer SDK, your consumer app can show the location of\nvehicles and other locations of interest tracked in Fleet Engine on a web-based\nmap. This allows your consumer users to see the progress of their shipments.\nThis guide assumes you have set up Fleet Engine with its associated\nGoogle Cloud project and API keys. See [Fleet Engine](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/create-project) for details.\n\nYou set up the JavaScript Consumer SDK following these steps:\n\n1. [Enable the Maps JavaScript API](#enable).\n2. [Set up authorization](#set-up-auth).\n\nEnable the Maps JavaScript API\n\nEnable the Maps JavaScript API in the Google Cloud Console project that you use\nfor your Fleet Engine instance. For more details, see [Enable APIs](/maps/documentation/javascript/cloud-setup#enabling-apis) in the\nMaps JavaScript API documentation.\n\nSet up authorization\n\nFleet Engine requires the use of **JSON Web Tokens** (JWTs) for API method calls\nfrom **low-trust environments**: smartphones and browsers.\n\nA JWT originates on your server, is signed, encrypted, and passed to the client\nfor subsequent server interactions until it expires or is no longer valid.\n\n**Key details**\n\n- Use [Application Default Credentials](https://google.aip.dev/auth/4110) to authenticate and authorize against Fleet Engine.\n- Use an appropriate service account to sign JWTs. See [Fleet Engine serviceaccount](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/service-accounts#fleet_engine_service_account_roles) roles in **Fleet Engine Basics**.\n\nYour consumer app should authenticate your end users with the `delivery_consumer` role from your Google Cloud project to return only consumer-specific information. In this way, Fleet Engine filters and redacts all other information in the responses. For example, during an unavailability task, no location information is shared with an end user. See [Service account\nroles](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/service-accounts#scheduled-tasks) for scheduled tasks.\n\nHow does authorization work?\n\nAuthorization with Fleet Engine data involves both server-side and client-side\nimplementation.\n\nServer-side authorization\n\nBefore you set up authentication and authorization in your web-based\napplication, your backend server must be able to issue JSON Web Tokens to your\nweb-based application for access to Fleet Engine. Your web-based application\nsends these JWTs with its requests so Fleet Engine recognizes the requests as\nauthenticated and authorized to access the data in the\nrequest. For instructions on server-side JWT implementation, see [Issue JSON Web\nTokens](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/issue-jwt) under **Fleet Engine Essentials**.\nSpecifically, keep in mind the following for the JavaScript Consumer SDK for tracking shipments:\n\n\u003cbr /\u003e\n\n- [General guidelines](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/issue-jwt#general_guidelines) for issuing JSON Web Tokens\n- [Scheduled tasks JWT guidelines](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/issue-jwt#for_scheduled_tasks)\n- [Example token for a consumer app](/maps/documentation/mobility/fleet-engine/essentials/set-up-fleet/issue-jwt#example_token_for_a_consumer_app)\n\nClient-side authorization\n\nWhen you use the JavaScript Consumer SDK, it requests a token from the server using an\nauthorization token fetcher. It does this when any of the following is true:\n\n- No valid token exists, such as when the SDK hasn't called the fetcher on a\n fresh page load, or when the fetcher hasn't returned with a token.\n\n- The token has expired.\n\n- The token is within one minute of expiring.\n\nOtherwise, the JavaScript Consumer SDK uses the previously-issued, valid token and does not\ncall the fetcher.\n\nCreate an authorization token fetcher\n\nCreate your authorization token fetcher using these guidelines:\n\n- **The fetcher must return a data structure with two fields** , wrapped in a\n `Promise` as follows:\n\n - A string `token`.\n\n - A number `expiresInSeconds`. A token expires in this amount of time\n after fetching. The authentication token fetcher must pass the expiry\n time in seconds, from the time of fetching to the library as shown in\n the example.\n\n- **The fetcher should call a URL on your server** to retrieve a token. This\n URL--the `SERVER_TOKEN_URL`--depends on your backend implementation. The\n following example URL is for the [sample app backend on GitHub](https://github.com/googlemaps/last-mile-fleet-solution-samples/tree/main/backend):\n\n - `https://SERVER_URL/token/delivery_consumer/TRACKING_ID`\n\nExample - Create an authentication token fetcher\n\nThe following examples show how to create an authorization token fetcher: \n\nJavaScript \n\n async function authTokenFetcher(options) {\n // options is a record containing two keys called\n // serviceType and context. The developer should\n // generate the correct SERVER_TOKEN_URL and request\n // based on the values of these fields.\n const response = await fetch(SERVER_TOKEN_URL);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const data = await response.json();\n return {\n token: data.Token,\n expiresInSeconds: data.ExpiresInSeconds\n };\n }\n\nTypeScript \n\n function authTokenFetcher(options: {\n serviceType: google.maps.journeySharing.FleetEngineServiceType,\n context: google.maps.journeySharing.AuthTokenContext,\n }): Promise\u003cgoogle.maps.journeySharing.AuthToken\u003e {\n // The developer should generate the correct\n // SERVER_TOKEN_URL based on options.\n const response = await fetch(SERVER_TOKEN_URL);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n const data = await response.json();\n return {\n token: data.token,\n expiresInSeconds: data.ExpiresInSeconds,\n };\n }\n\nWhat's next\n\n- [Follow a shipment](/maps/documentation/mobility/journey-sharing/scheduled/shipment-tracking/follow)"]]