JavaScript Tüketici SDK'sını ayarlama

Platform seçin: Android iOS JavaScript

JavaScript Consumer SDK ile tüketici uygulamanız, Fleet Engine'de izlenen araçların konumunu ve diğer ilgi çekici yerleri web tabanlı bir haritada gösterebilir. Bu sayede tüketicileriniz sürücünün yolculuğunun ilerleme durumunu görebilir. Bu kılavuzda, Fleet Engine'i ilişkili Google Cloud projesi ve API anahtarlarıyla birlikte ayarladığınız varsayılır. Ayrıntılar için Fleet Engine başlıklı makaleyi inceleyin.

Aşağıdaki adımları uygulayarak JavaScript Consumer SDK'sını ayarlarsınız:

  1. Maps 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 fazla bilgi için Google Cloud belgelerindeki API'leri etkinleştirme başlıklı makaleyi inceleyin. Bu, JavaScript için Consumer SDK'yı etkinleştirir.

Yetkilendirme kurulumu

Fleet Engine, düşük güvenli ortamlardan (akıllı telefonlar ve tarayıcılar) gelen API yöntemi çağrıları için JSON Web Jetonları (JWT'ler) kullanılmasını gerektirir.

JWT, sunucunuzda oluşturulur, imzalanır, şifrelenir ve süresi dolana veya geçerliliğini yitirene kadar sonraki sunucu etkileşimleri için istemciye iletilir.

Önemli ayrıntılar

Yetkilendirme nasıl çalışır?

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

Sunucu tarafı yetkilendirme

Web tabanlı uygulamanızda kimlik doğrulama ve yetkilendirme ayarlamadan önce arka uç sunucunuz, Fleet Engine'e erişim için web tabanlı uygulamanıza JSON web jetonları verebilmelidir. Web tabanlı uygulamanız, bu JWT'leri istekleriyle birlikte gönderir. Böylece Fleet Engine, istekleri kimliği doğrulanmış ve istekteki verilere erişim için yetkilendirilmiş olarak tanır. Sunucu tarafında JWT uygulama talimatları için Fleet Engine Essentials bölümündeki JSON Web Jetonları Verme başlıklı makaleyi inceleyin.

Özellikle, seyahat ilerleme durumunu paylaşmak için JavaScript Consumer SDK'sında aşağıdakileri göz önünde bulundurun:

İstemci tarafı yetkilendirme

JavaScript Consumer SDK'yı kullandığınızda, yetkilendirme jetonu getirici kullanarak sunucudan jeton istenir. Aşağıdakilerden herhangi biri doğru olduğunda bu işlemi yapar:

  • Geçerli bir jeton yoktur. Örneğin, SDK yeni bir sayfa yüklemesinde alıcıyı çağırmadığında veya alıcı bir jetonla geri dönmediğinde bu durum oluşur.

  • Jetonun süresi doldu.

  • Jetonun kullanım süresinin dolmasına bir dakika kaldı.

Aksi takdirde, JavaScript Consumer SDK daha önce verilmiş olan geçerli jetonu kullanır ve getiriciyi çağırmaz.

Yetkilendirme jetonu alıcı oluşturma

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

  • Getirici, aşağıdaki gibi bir Promise içine alınmış iki alanlı bir veri yapısı döndürmelidir:

    • Bir dize token.

    • Bir sayı expiresInSeconds. Jeton, getirilmesinden sonra bu süre içinde sona erer. Kimlik doğrulama jetonu alıcı, son kullanma zamanını saniye cinsinden, alma zamanından kitaplığa iletmelidir. Bu işlem, örnekte gösterildiği gibi yapılmalıdır.

  • Getirici, 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. Aşağıdaki örnek URL, GitHub'daki örnek uygulama arka ucu içindir:

    • https://SERVER_URL/token/consumer/TRIPID

Örnek: Kimlik doğrulama jetonu getirici oluşturma

Aşağıdaki örneklerde, yetkilendirme jetonu getiren işlevin 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'te bir geziyi takip etme