使用 OAuth

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

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

准备工作

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

OAuth 简介

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

例如,Google OAuth 2.0 系统支持服务器到服务器的互动,例如您的应用与 Google 服务之间的互动。对于这种情况,您需要使用服务账号,这种账号属于您的应用,而不是某个最终用户。您的应用会代表服务账号调用 Google API,因此用户不会直接参与。如需详细了解身份验证方法,请参阅 Google 身份验证

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

OAuth 范围简介

如需将 OAuth 与 Places Insights API 搭配使用,必须为 OAuth 令牌分配以下范围:

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

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

如果您想使用 OAuth 令牌试用地点数据分析 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 令牌调用 Google 地图数据分析 API:

curl -X POST 'https://areainsights.googleapis.com/v1:computeInsights' \
-H "Content-Type: application/json" \
-H "X-Goog-User-Project: PROJECT_NUMBER_OR_ID" \
-H "Authorization: Bearer $TOKEN" \
--data '{
   "insights":[
      "INSIGHT_COUNT"
   ],
   "filter":{
      "location_filter":{
         "region":{
            "place":"places/ChIJIQBpAG2ahYAR_6128GcTUEo"
         }
      },
      "type_filter":{
         "included_types":[
            "restaurant"
         ]
      },
      "price_levels":[
         "PRICE_LEVEL_INEXPENSIVE"
      ]
   }
}'

问题排查

如果您的请求返回有关此 API 不支持最终用户凭据的错误消息,请参阅用户凭据不起作用