Configurer le SDK JavaScript Consumer

Sélectionnez une plate-forme : Android iOS JavaScript

Grâce au SDK Consumer JavaScript, votre application grand public peut afficher la position des véhicules et d'autres lieux d'intérêt suivis dans Fleet Engine sur une carte Web. Cela permet à vos clients de suivre la progression du trajet du chauffeur. Ce guide suppose que vous avez configuré Fleet Engine avec son projet Google Cloud et ses clés API associés. Pour en savoir plus, consultez Fleet Engine.

Pour configurer le SDK Consumer JavaScript, procédez comme suit :

  1. Activer l'API Maps JavaScript
  2. Configurer les autorisations

Activer l'API Maps JavaScript

Activez l'API Maps JavaScript dans la console Google Cloud. Pour en savoir plus, consultez Activer des API dans la documentation Google Cloud. Cela active le SDK Consumer pour JavaScript.

Configurer les autorisations

Fleet Engine exige l'utilisation de jetons Web JSON (JWT) pour les appels de méthodes d'API à partir d'environnements à faible niveau de confiance : smartphones et navigateurs.

Un jeton JWT est généré sur votre serveur, signé, chiffré et transmis au client pour les interactions ultérieures avec le serveur, jusqu'à ce qu'il expire ou ne soit plus valide.

Détails importants

Comment fonctionne l'autorisation ?

L'autorisation avec les données Fleet Engine implique une implémentation côté serveur et côté client.

Autorisation côté serveur

Avant de configurer l'authentification et l'autorisation dans votre application Web, votre serveur backend doit être en mesure d'émettre des jetons Web JSON pour votre application Web afin d'accéder à Fleet Engine. Votre application Web envoie ces jetons JWT avec ses requêtes afin que Fleet Engine reconnaisse les requêtes comme authentifiées et autorisées à accéder aux données de la requête. Pour savoir comment implémenter les jetons JWT côté serveur, consultez Émettre des jetons Web JSON sous Principes de base de Fleet Engine.

Plus précisément, gardez à l'esprit les points suivants concernant le SDK Consumer JavaScript pour le partage de la progression du trajet :

Autorisation côté client

Lorsque vous utilisez le SDK Consumer JavaScript, il demande un jeton au serveur à l'aide d'un récupérateur de jetons d'autorisation. Il le fait lorsque l'une des conditions suivantes est remplie :

  • Aucun jeton valide n'existe, par exemple lorsque le SDK n'a pas appelé le récupérateur lors d'un chargement de page récent ou lorsque le récupérateur n'a pas renvoyé de jeton.

  • Le jeton a expiré.

  • Le jeton expire dans moins d'une minute.

Sinon, le SDK Consumer JavaScript utilise le jeton valide émis précédemment et n'appelle pas le récupérateur.

Créer un récupérateur de jetons d'autorisation

Créez votre récupérateur de jetons d'autorisation en suivant ces consignes :

  • Le récupérateur doit renvoyer une structure de données avec deux champs, encapsulés dans un Promise comme suit :

    • Chaîne token.

    • Un nombre expiresInSeconds. Un jeton expire après ce délai une fois récupéré. Le récupérateur de jetons d'authentification doit transmettre le délai d'expiration en secondes, à partir du moment de la récupération, à la bibliothèque, comme indiqué dans l'exemple.

  • Le récupérateur doit appeler une URL sur votre serveur pour récupérer un jeton. Cette URL (SERVER_TOKEN_URL) dépend de l'implémentation de votre backend. L'URL d'exemple suivante concerne le backend de l'application exemple sur GitHub :

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

Exemple : Créer un récupérateur de jetons d'authentification

Les exemples suivants montrent comment créer un récupérateur de jetons d'autorisation :

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,
  };
}

Étape suivante

Suivre un trajet en JavaScript