设置 Navigation Connect

欧洲经济区 (EEA) 开发者

本文档介绍了开始使用 Navigation Connect 所需的步骤。

Google Maps Platform 产品要求 API 调用包含 OAuth 令牌,以防止未经授权的使用。

创建 OAuth 令牌

Navigation Connect 支持使用 OAuth 2.0 进行身份验证。Google 支持常见的 OAuth 2.0 场景,例如 Web 服务器场景。

本文档介绍了如何在开发环境中将 OAuth 令牌传递给 Navigation Connect 调用。如需详细了解如何在生产环境中使用 OAuth,请参阅 Google 的身份验证方法。

您可以通过向服务器发出 API 请求来直接调用 Google Maps API,也可以使用客户端库来简化代码。Google 地图提供适用于 Go、Java、Node.js 和 Python 的客户端库。如需了解详情,请参阅 Navigation Connect 客户端库。

OAuth 概览

您可以根据部署环境,通过多种方式使用 OAuth 创建和管理访问令牌。

您可以使用 OAuth 2.0 实现应用与 Google 服务之间的服务器到服务器互动。在这种情况下,您可以使用与应用关联的服务账号,而不是与个别用户关联的服务账号。您可以使用服务账号发出 API 请求,而无需用户直接参与。如需详细了解身份验证方法,请参阅 Google 的身份验证方法。

或者,您也可以将 Navigation Connect 集成到 Android 或 iOS 移动应用中。如需详细了解如何使用 OAuth 和管理不同部署环境的访问令牌,请参阅使用 OAuth 2.0 访问 Google API。

OAuth 范围

如需将 OAuth 与 Navigation Connect 搭配使用,您必须为 OAuth 令牌分配以下范围:

https://www.googleapis.com/auth/cloud-platform

示例:在本地开发环境中尝试 REST API 调用

如果您没有生成令牌的环境,但想使用 OAuth 令牌试用 Navigation Connect,请按照本部分中的步骤操作。

此示例介绍了如何使用应用默认凭证 (ADC) 提供的 OAuth 令牌进行调用。如需详细了解如何使用 ADC 通过客户端库调用 Google API,请参阅使用客户端库进行身份验证。

以下 REST 过程仅适用于开发或测试,不适用于生产环境。

前提条件

在使用 ADC 发出 REST 请求之前,请使用 gcloud CLI 向 ADC 提供凭据:

  1. 安装并初始化 gcloud CLI。如需了解详情,请参阅安装 gcloud CLI。

  2. 使用 gcloud CLI 进行身份验证:

    gcloud auth application-default login
  3. 完成登录流程,将您的凭据保存在 ADC 使用的本地凭据文件中。

如需了解详情,请参阅为本地开发环境设置 ADC。

发出 REST 请求

在此示例中,您传递了两个请求标头:

  • 使用以下命令在 Authorization 标头中传递 OAuth 令牌,以生成令牌:

    gcloud auth application-default print-access-token

    返回的令牌的范围为 https://www.googleapis.com/auth/cloud-platform。

  • 在 X-Goog-User-Project 标头中传递已启用结算功能的 Google Cloud 云项目的 ID 或名称。

如需使用 OAuth 令牌调用 Navigation Connect,请完成以下步骤:

  1. 在以下代码示例中,将占位符替换为您的值:

    • PROJECT_ID:您的 Google Cloud 项目 ID
    • ANDROID_APP_ID:应用的 Android 软件包名称(如果适用)
    • IOS_APP_ID:应用的 iOS 软件包 ID(如果适用)
    #!/bin/bash
    trip_id="$(uuidgen)"
    access_token="$(gcloud auth application-default print-access-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 '{
    "androidAppId": "ANDROID_APP_ID",
    "iosAppId": "IOS_APP_ID",
    }'
  2. 如需复制 curl 命令,请点击代码示例中的复制。

  3. 将该命令粘贴到终端窗口中,然后运行该命令。

响应是一个 JSON 对象:

{
  "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:项目的唯一长整数标识符
  • TRIP_ID:后端生成的 UUIDv4 行程 ID
  • BASE64_ENCODED_TRIP_TOKEN:createTrip 方法返回的经过身份验证的令牌,用于在 Google 地图或 Waze 中启动跟踪的精细导航

问题排查

如果您的请求返回一条错误消息,指出相应 API 不支持最终用户凭据,请参阅排查 ADC 设置问题。

后续步骤

接下来,为 Navigation Connect API 配置服务账号,以支持后端基础设施、Google 地图和 Waze 之间的安全服务器到服务器通信。

设置服务账号