JavaScript Tüketici SDK'sı ile tüketici uygulamanız, araçları ve diğer ilgilenilen konumları, web tabanlı olarak Fleet Engine'de haritası. Bu sayede tüketici kullanıcılarınız, gönderimlerinin ilerleme durumunu görebilir. Bu kılavuzda, Fleet Engine'i ilişkili Google Cloud projesi ve API anahtarları. Ayrıntılar için Fleet Engine sayfasına bakın.
JavaScript Tüketici SDK'sını şu adımları uygulayarak ayarlarsınız:
Maps JavaScript API'yi etkinleştirme
Kullandığınız Google Cloud Console projesinde Maps JavaScript API'yi etkinleştirin bir örneğidir. Daha fazla bilgi için şurada API'leri etkinleştirme bölümüne bakın: Maps JavaScript API dokümanları.
Yetkilendirme kurulumu
Fleet Engine, JSON Web Jetonlarının (JWT) düşük güventan gelen API yöntemi çağrıları için uygun hizmet hesabı ortamlar için geçerlidir. Akıllı telefonlar ve tarayıcılar, güven düzeyinin düşük olduğu ortamlara dahildir. JWT tamamen güvenilir bir ortam olan sunucunuzdan kaynaklandığı için JWT imzalanır, şifrelenir ve sonraki sunucu için istemciye iletilir geçerlilik süresi sona erene kadar veya geçerliliğini yitirene kadar işlem gerçekleştiremez.
Arka ucunuz aşağıdakileri kullanarak Fleet Engine'e karşı kimlik doğrulamalı ve yetkilendirme yapmalıdır: Application Default Credentials (Uygulama Varsayılan Kimlik Bilgileri) mekanizmalarını kullanın. Marka uygun bir hizmet hesabı tarafından imzalanmış JWT'leri kullandığınızdan emin olun. Örneğin, hizmet hesabı rollerinin listesi için Fleet Engine hizmet hesabı rollerine bakın Fleet Engine Basics (Filo Motoru Temel Bilgileri) bölümüne göz atın.
Tüketici uygulamanız, Yalnızca geri dönülecek Google Cloud projenizdendelivery_consumer
rolü
Tüketiciye özel bilgiler. Bu şekilde, Fleet Engine tüm öğeleri filtreleyip
geri bildirim vermelisiniz. Örneğin, "kullanılamayan" görevi sırasında
Son kullanıcıyla konum bilgisi paylaşılmaz. Bkz. Hizmet hesabı
roller hakkında daha fazla bilgi edinin.
Yetkilendirme nasıl çalışır?
Fleet Engine verileriyle yetkilendirme hem sunucu tarafını hem de istemci tarafını içerir hakkında bilgi edindiniz.
Sunucu tarafı yetkilendirme
Web tabanlı uygulamanızda yetkilendirme ayarlamadan önce arka ucunuz sunucu, JSON Web Jetonları sunabilmelidir. Bu sayede Fleet Engine, uygulamanızdan gelen istekleri, erişim izni olarak tanır veriler yer alır. Sunucu tarafı JWT uygulamasıyla ilgili talimatlar için Fleet Engine Essentials altında JSON Web Jetonları yayınlayın.
JavaScript Tüketici SDK'sı için özellikle aşağıdakileri göz önünde bulundurun: gönderi takibi için:- JSON Web Jetonları vermeyle ilgili genel yönergeler
- Programlanmış görevler JWT yönergeleri
- Bir tüketici uygulaması için örnek jeton
İstemci tarafı yetkilendirme
JavaScript Tüketici SDK'sını kullandığınızda yetkilendirme jetonu alıcısı. Bunu, aşağıdakilerden herhangi biri doğru olduğunda yapar:
Geçerli bir jeton bulunmuyor (örneğin, SDK'nın alıcıyı çağırmadığı durumlarda) yeni bir sayfa yüklemesinde veya alıcı bir jeton geri döndürmediğinde.
Jetonun süresi doldu.
Jetonun süresinin dolmasından itibaren bir dakika içinde olması gerekir.
Aksi takdirde, JavaScript Tüketici SDK'sı önceden verilen geçerli jetonu kullanır ve alıcıyı çağırmaz.
Yetkilendirme jetonu alıcısı oluşturma
Aşağıdaki yönergeleri kullanarak yetkilendirme jetonu alıcınızı oluşturun:
Alıcı, iki alanı olan bir veri yapısı döndürmelidir. Bu veri yapısı
Promise
şu şekildedir:token
dizesi.expiresInSeconds
sayısı. Bu süre içinde bir jetonun süresi doluyor sonra görünür. Kimlik doğrulama jetonunun sahibi, son geçerlilik tarihini geçmelidir getirme zamanından kitaplığa aktarılmadan önce gösterildiği üzere saniye cinsinden süre verelim.
Alıcı, bir jeton almak için sunucunuzdaki bir URL'yi çağırmalıdır. Bu URL (
SERVER_TOKEN_URL
), arka uç uygulamanıza bağlıdır. İlgili içeriği oluşturmak için kullanılan aşağıdaki örnek URL, GitHub'daki örnek uygulama arka ucu içindir:https://SERVER_URL/token/delivery_consumer/TRACKING_ID
Örnek - Kimlik doğrulama jetonu alıcısı oluşturma
Aşağıdaki örneklerde, yetkilendirme jetonu alıcısının nasıl oluşturulacağı gösterilmektedir:
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,
};
}