如需为司机安全地启动精细导航会话,您的后端必须创建行程并从 Navigation Connect API 获取经过身份验证的行程令牌。
在 Navigation Connect 中,行程是指前往单个目的地的导航会话。如需创建行程并获取授权会话所需的经过身份验证的行程令牌 (authToken),请向 CreateTrip 方法发送 CreateTripRequest 消息。将行程令牌传递给您的移动应用,以包含在 Google 地图或 Waze 的启动网址中。
本指南介绍了如何通过生成唯一的行程 ID 并提交 API 请求来完成此流程。
构建 CreateTripRequest 消息
如需创建行程并获取行程令牌,请执行以下步骤来构建和发送 CreateTripRequest 消息:
- 进行身份验证:使用应用默认凭证 (ADC) 获取访问令牌,以授权您的请求。如需了解详情,请参阅创建 OAuth 令牌。
- 生成行程 ID:创建 UUIDv4 格式的唯一行程 ID (
tripId),用于在服务器上标识行程。 - 构建载荷:创建包含应用 ID 和配置设置的 JSON 载荷。
- 调用
CreateTrip方法:向 API 发送 POST 请求,并在标头中包含访问令牌,在正文中包含载荷。
以下示例展示了如何通过发送 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}"
可选配置
您可以在 CreateTripRequest 消息中调整以下设置,以自定义行程数据:
| 功能 | 类型 | 说明 |
|---|---|---|
| 剩余路线报告(仅限 Waze) | boolean |
如需接收有效路线的折线和实时路况信息,请将 |
| 行程更新频率 | boolean |
默认情况下,Navigation Connect 每 60 秒更新一次行程数据。如需启用高频更新(每 5 秒),请将 |
| Google Cloud Pub/Sub 事件生成 | boolean |
如需使用 Google Cloud Pub/Sub 启用行程事件生成功能,请将 |
| Google Cloud Pub/Sub 字段掩码 | FieldMask |
如需管理载荷大小并减少后端处理负载或 Google Cloud Pub/Sub 使用费用,请使用 |
从响应中获取行程令牌
CreateTrip 方法会返回包含经过身份验证的行程令牌的响应。如需授权导航会话,请从响应中提取此令牌,并将其传递给移动应用以包含在启动网址中。
以下代码示例展示了一个示例响应:
{
"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"
}
此响应包含以下值:
- PROJECT_NUMBER:项目的唯一数字标识符。此标识符与字母数字项目 ID 不同,但表示的是同一个 Google Cloud 项目。
- TRIP_ID:由后端生成的行程 ID,采用 UUIDv4 格式。
- BASE64_ENCODED_TRIP_TOKEN:由
CreateTrip方法返回的经过身份验证的行程令牌 (authToken.token)。将此令牌传递给您的移动应用,以在 Google 地图或 Waze 中启动跟踪的精细导航。
后续步骤
使用行程令牌启动 Google 地图或 Waze。