JavaScript Tüketici SDK'sını ayarlama

Platform seçin: Android iOS JavaScript

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üketicileriniz, sürücünün yolculuğundaki ilerlemeyi görebilir. Bu kılavuzda, Fleet Engine'i ilişkili Google Cloud ile kurduğunuz varsayılmaktadır proje ve API anahtarlarıdır. Ayrıntılar için Fleet Engine sayfasına bakın.

JavaScript Tüketici SDK'sını şu adımları uygulayarak ayarlarsınız:

  1. Haritalar JavaScript API'yi etkinleştirme
  2. Yetkilendirme kurulumu

Maps JavaScript API'yi etkinleştirme

Google Cloud Console'da Maps JavaScript API'yi etkinleştirin. Daha ayrıntılı bilgi için Google Cloud dokümanlarındaki API'leri etkinleştirme bölümüne bakın. Bu şekilde JavaScript için Tüketici SDK'sı.

Yetkilendirme kurulumu

Düşük güven düzeyine sahip ortamlardan gelen API yöntemi çağrıları için Fleet Engine, Uygun bir hizmet hesabı tarafından imzalanan JSON Web Jetonlarının (JWT) kullanımı. 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.

Buna karşılık, arka ucunuzun Fleet Engine'e karşı kimlik doğrulaması ve yetkilendirme yapması gerekir. standart Uygulama Varsayılan Kimlik Bilgilerini kullanarak mekanizmalar.

Yetkilendirme nasıl çalışır?

Fleet Engine verileriyle yetkilendirme, hem sunucu hem de istemci taraflı uygulamayı içerir.

Sunucu tarafı yetkilendirme

Web tabanlı cihazınızda kimlik doğrulama ve yetkilendirme ayarlarını yapmadan önce uygulamanızın arka uç sunucunuzdaki JSON Web Jetonlarını erişim için web tabanlı bir uygulama kullanır. Web tabanlı uygulamanız Bu JWT'leri istekleriyle birlikte gönderir. Böylece Fleet Engine, istekleri verilere erişme konusunda yetkilendirilmiş ve isteği gönderin. Sunucu tarafı JWT uygulamasıyla ilgili talimatlar için Fleet Engine'in Temel Özellikleri bölümündeki JSON Web Jetonu Oluşturma başlıklı makaleyi inceleyin.

JavaScript Tüketici SDK'sı için şunlara dikkat edin: yolculuk paylaşımı:

İ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 bulunmaması (örneğin, SDK'nın bir ya da alıcı bir jeton geri döndürmediğinden emin olun.

  • Jetonun süresi doldu.

  • Jetonun süresi bir dakika içinde dolacak.

Aksi takdirde, JavaScript Tüketici SDK'sı daha önce verilen geçerli jetonu kullanır ve son derece önemlidir.

Yetkilendirme jetonu alıcısı oluşturma

Aşağıdaki yönergeleri kullanarak yetkilendirme jetonu alıcınızı oluşturun:

  • Alıcının, iki alan içeren bir veri yapısı döndürmesi gerekir. Bu yapı, aşağıdaki gibi bir Promise içine sarılmalıdır:

    • 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 kadar saniye cinsinden süre cinsinden 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/consumer/TRIPID

Örnek -- Kimlik doğrulama jetonu alıcısı oluşturma

Aşağıdaki örneklerde, yetkilendirme jetonu getirme aracı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,
  };
}

Sırada ne var?

JavaScript ile bir geziyi takip etme