Créer un voyage et obtenir un jeton de voyage

Pour lancer une session de navigation détaillée sécurisée pour un conducteur, votre backend doit créer un trajet et obtenir un jeton de trajet authentifié à partir de l'API Navigation Connect.

Dans Navigation Connect, un trajet représente une session de navigation vers une seule destination. Pour créer un trajet et obtenir le jeton de trajet authentifié (authToken) requis pour autoriser la session, envoyez un message CreateTripRequest à la méthode CreateTrip. Transmettez le jeton de trajet à votre application mobile pour l'inclure dans l'URL de lancement de Google Maps ou Waze.

Ce guide explique comment effectuer ce processus en générant un ID de trajet unique et en envoyant votre requête d'API.

Rédige un message CreateTripRequest

Pour créer un trajet et obtenir un jeton de trajet, procédez comme suit pour construire et envoyer un message CreateTripRequest :

  1. Authentification : utilisez les identifiants par défaut de l'application pour obtenir un jeton d'accès permettant d'autoriser votre requête. Pour en savoir plus, consultez Créer un jeton OAuth.
  2. Générez un ID de trajet : créez un ID de trajet unique (tripId) au format UUIDv4 pour identifier le trajet sur votre serveur.
  3. Créez la charge utile : créez une charge utile JSON qui inclut vos ID d'application et vos paramètres de configuration.
  4. Appelez la méthode CreateTrip : envoyez une requête POST à l'API avec le jeton d'accès dans l'en-tête et la charge utile dans le corps.

L'exemple suivant montre comment créer un trajet en envoyant un message CreateTripRequest :

#!/bin/bash

# Authenticate with ADC
access_token="$(gcloud auth application-default login --impersonate-service-account=SERVICE_ACCOUNT_EMAIL)"

# Generate a unique Trip ID
trip_id="$(uuidgen)"

# Construct the payload
payload=$(cat <<EOF
{
  "androidAppId": "ANDROID_APP_ID",
  "iosAppId": "IOS_APP_ID",
  "config": {
    "enablePubsub": true
  }
}
EOF
)

# Call the CreateTrip method to request a trip token
curl -X POST "https://navigationconnect.googleapis.com/v1/projects/PROJECT_ID/trips?tripId=${trip_id}" \
-H "Authorization: Bearer ${access_token}" \
-H "Content-Type: application/json" \
-d "${payload}"

Configurations facultatives

Vous pouvez personnaliser les données de trajet en modifiant les paramètres suivants dans le message CreateTripRequest :

Fonctionnalité Type Description
Signalement de l'itinéraire restant (Waze uniquement) boolean

Pour recevoir la polyligne de l'itinéraire actif et les conditions de circulation en temps réel, définissez config.enableRemainingRouteReporting sur true.

Fréquence de mise à jour des trajets boolean

Par défaut, Navigation Connect met à jour les données de trajet toutes les 60 secondes. Pour activer les mises à jour à haute fréquence (toutes les 5 secondes), définissez config.enableHighFrequencyUpdates sur true.

Génération d'événements Google Cloud Pub/Sub boolean

Pour activer la génération d'événements de trajet à l'aide de Google Cloud Pub/Sub, définissez config.enablePubsub sur true. Cette fonctionnalité est désactivée par défaut.

Masque de champ Google Cloud Pub/Sub FieldMask

Pour gérer la taille des charges utiles et réduire la charge de traitement du backend ou les coûts d'utilisation de Google Cloud Pub/Sub, utilisez config.pubsubFieldMask pour exclure les champs volumineux (tels que execution.remainingRoute) de votre flux d'événements. Pour en savoir plus sur la taille de la charge utile pour les données d'itinéraire restantes, consultez Gérer les données d'itinéraire restantes.

Obtenir le jeton de trajet à partir de la réponse

La méthode CreateTrip renvoie une réponse contenant le jeton de trajet authentifié. Pour autoriser la session de navigation, extrayez ce jeton de la réponse et transmettez-le à votre application mobile pour l'inclure dans l'URL de lancement.

L'exemple de code suivant illustre un exemple de réponse :

{
    "name": "projects/PROJECT_NUMBER/trips/TRIP_ID",
  "authToken": {
    "token": "BASE64_ENCODED_TRIP_TOKEN",
    "expireTime": "2026-03-06T11:09:47.476942Z"
  },
  "state": "NEW",
  "execution": {
    "traveledDistanceMeters": 0,
    "stopAddedInRoute": false
  },
  "createTime": "2026-03-05T23:09:50.768959Z",
  "updateTime": "2026-03-05T23:09:50.768959Z"
}

Cette réponse inclut les valeurs suivantes :

  • PROJECT_NUMBER : identifiant numérique unique de votre projet. Il est différent de votre ID de projet alphanumérique, mais représente le même projet Google Cloud.
  • TRIP_ID : ID du trajet généré par votre backend au format UUIDv4.
  • BASE64_ENCODED_TRIP_TOKEN : jeton de trajet authentifié (authToken.token) renvoyé par la méthode CreateTrip. Transmettez ce jeton à votre application mobile pour lancer la navigation détaillée suivie dans Google Maps ou Waze.

Étape suivante

Utilisez le jeton de trajet pour lancer Google Maps ou Waze.

Lancer Google Maps ou Waze