Crea un viaje y obtén un token de viaje

Para iniciar de forma segura una sesión de navegación paso a paso para un conductor, tu backend debe crear un viaje y obtener un token de viaje autenticado de la API de Navigation Connect.

En Navigation Connect, un viaje representa una sesión de navegación a un solo destino. Para crear un viaje y obtener el token de viaje autenticado (authToken) necesario para autorizar la sesión, envía un mensaje CreateTripRequest al método CreateTrip. Pasa el token de viaje a tu app para dispositivos móviles para incluirlo en la URL de inicio de Google Maps o Waze.

En esta guía, se describe cómo completar este proceso generando un ID de viaje único y enviando tu solicitud a la API.

Cómo construir un mensaje de CreateTripRequest

Para crear un viaje y obtener un token de viaje, sigue estos pasos para construir y enviar un mensaje CreateTripRequest:

  1. Autenticación: Usa las credenciales predeterminadas de la aplicación (ADC) para obtener un token de acceso y autorizar tu solicitud. Para obtener más detalles, consulta Cómo crear un token de OAuth.
  2. Genera un ID de viaje: Crea un ID de viaje único (tripId) en formato UUIDv4 para identificar el viaje en tu servidor.
  3. Construye la carga útil: Crea una carga útil JSON que incluya los IDs de tus apps y la configuración.
  4. Llama al método CreateTrip: Envía una solicitud POST a la API con el token de acceso en el encabezado y la carga útil en el cuerpo.

En el siguiente ejemplo, se muestra cómo crear un viaje enviando un mensaje 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}"

Configuración opcional

Puedes personalizar los datos del viaje ajustando los siguientes parámetros de configuración en el mensaje CreateTripRequest:

Función Tipo Descripción
Informes de la ruta restante (solo en Waze) boolean

Para recibir la polilínea de la ruta activa y las condiciones de tráfico en tiempo real, establece config.enableRemainingRouteReporting en true.

Frecuencia de actualización del viaje boolean

De forma predeterminada, Navigation Connect actualiza los datos del viaje cada 60 segundos. Para habilitar las actualizaciones de alta frecuencia (cada 5 segundos), establece config.enableHighFrequencyUpdates en true.

Generación de eventos de Google Cloud Pub/Sub boolean

Para habilitar la generación de eventos de viaje con Google Cloud Pub/Sub, configura config.enablePubsub en true. Esta función está inhabilitada de forma predeterminada.

Máscara de campo de Google Cloud Pub/Sub FieldMask

Para administrar los tamaños de cargas útiles y reducir la carga de procesamiento del backend o los costos de uso de Google Cloud Pub/Sub, usa config.pubsubFieldMask para excluir los campos pesados (como execution.remainingRoute) de tu flujo de eventos. Para obtener más información sobre el tamaño de la carga útil de los datos de ruta restantes, consulta Cómo controlar los datos de ruta restantes.

Obtén el token del viaje de la respuesta

El método CreateTrip devuelve una respuesta que contiene el token de viaje autenticado. Para autorizar la sesión de navegación, extrae este token de la respuesta y pásalo a tu app para dispositivos móviles para incluirlo en la URL de lanzamiento.

En la siguiente muestra de código, se muestra una respuesta de ejemplo:

{
    "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"
}

Esta respuesta incluye los siguientes valores:

  • PROJECT_NUMBER: Es un identificador numérico único para tu proyecto. Es distinto del ID del proyecto alfanumérico, pero representa el mismo proyecto de Google Cloud.
  • TRIP_ID: Es el ID del viaje que generó tu backend en formato UUIDv4.
  • BASE64_ENCODED_TRIP_TOKEN: Es el token de viaje autenticado (authToken.token) que devuelve el método CreateTrip. Pasa este token a tu app para dispositivos móviles para iniciar la navegación paso a paso con seguimiento en Google Maps o Waze.

¿Qué sigue?

Usa el token de viaje para iniciar Google Maps o Waze.

Inicia Google Maps o Waze