使用 OAuth

Routes API 支持使用 OAuth 2.0 进行身份验证。 Google 支持常见的 OAuth 2.0 场景,如网络服务器的场景。

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

准备工作

在开始使用 Routes API 之前,请确保您的项目已关联结算帐号并且启用了 Routes API。我们建议创建多个 Project Owner 和 Billing Administrator,确保您的团队中始终有人担任这些角色。如需了解详情,请参阅在 Cloud 控制台中进行设置

OAuth 简介

您可以通过多种方式使用 OAuth 创建和管理访问令牌,具体取决于您的部署环境。

例如,Google OAuth 2.0 系统支持服务器到服务器交互,例如您的应用与 Google 服务之间的交互。在此场景中,您需要一个服务帐号,该帐号属于您的应用而非某个最终用户。您的应用会代表服务帐号调用 Google API,因此用户不会直接参与其中。如需详细了解身份验证方法,请参阅 Google 身份验证

或者,您也可以在 Android 或 iOS 移动应用中使用 Routes API。如需了解有关将 OAuth 与 Routes API 搭配使用的一般信息(包括有关管理不同部署环境的访问令牌的信息),请参阅使用 OAuth 2.0 访问 Google API

OAuth 范围简介

如需将 OAuth 与 Routes API 搭配使用,必须为 OAuth 令牌分配作用域:

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

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

如果您想使用 OAuth 令牌试用 Routes API,但没有设置生成令牌的环境,可以使用本部分中的步骤进行调用。

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

前提条件

您需要先使用 Google Cloud CLI 向 ADC 提供凭据,然后才能使用 ADC 发出 REST 请求:

  1. 按照在 Google Cloud 控制台中进行设置中的步骤创建一个项目并启用结算功能(如果尚未创建)。
  2. 安装并初始化 gcloud CLI
  3. 在本地机器上运行以下 gcloud 命令以创建凭据文件:

    gcloud auth application-default login
  4. 系统会显示登录屏幕。在您登录后,您的凭据会存储在 ADC 使用的本地凭据文件中。

如需了解详情,请参阅为应用默认凭据提供凭据文档的本地开发环境部分。

发出 REST 请求

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

以下示例使用 OAuth 令牌调用 Routes API:

curl -X POST -d '{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
  "travelMode": "DRIVE",
}' \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
-H "X-Goog-User-Project: PROJECT_ID" \
-H "X-Goog-FieldMask: routes.duration,routes.distanceMeters" \
"https://routes.googleapis.com/directions/v2:computeRoutes"

问题排查

如果您的请求返回错误消息,指出此 API 不支持最终用户凭据,请参阅用户凭据无效