本文档介绍了开始使用 Geocoding API 所需的步骤。
|
确保您满足前提条件。 |
在您的 Google Cloud 项目中启用该 API。 |
配置 API 密钥或 OAuth 以发出经过身份验证的 API 请求。 |
只有在 API 调用中包含 API 密钥或 OAuth 令牌的用户才能调用 API,这样可防止 Google Maps Platform 产品遭到未经授权的使用。
创建 OAuth 令牌
地理编码 API 支持使用 OAuth 2.0 进行身份验证。Google 支持常见的 OAuth 2.0 用例,如网络服务器用例。
本文档介绍了如何在开发环境中将 OAuth 令牌传递给 Geocoding API 调用。如需了解如何在生产环境中使用 OAuth,请参阅 Google 的身份验证方法。
OAuth 简介
您可以根据部署环境,通过多种方式使用 OAuth 创建和管理访问令牌。
例如,Google OAuth 2.0 系统支持服务器到服务器的互动,例如您的应用与 Google 服务之间的互动。在这种情况下,您需要一个服务账号,该账号属于您的应用,而不是某个最终用户。您的应用会代表服务账号调用 Google API,因此用户不会直接参与。 如需详细了解身份验证方法,请参阅 Google 的身份验证方法。
或者,您也可以在 Android 或 iOS 移动应用中使用地理编码 API。如需了解有关将 OAuth 与地理编码 API 搭配使用的常规信息(包括有关管理不同部署环境的访问令牌的信息),请参阅使用 OAuth 2.0 访问 Google API。
关于 OAuth 范围
如需将 OAuth 与 Geocoding API 搭配使用,必须为 OAuth 令牌分配正确的范围。地理编码 API 支持以下范围:
https://www.googleapis.com/auth/maps-platform.geocode- 与所有 Geocoding API 端点搭配使用。https://www.googleapis.com/auth/maps-platform.geocode.address- 仅与GeocodeAddress搭配使用,用于正向地理编码。https://www.googleapis.com/auth/maps-platform.geocode.location- 仅与GeocodeLocation搭配使用,用于反向地理编码。https://www.googleapis.com/auth/maps-platform.geocode.place- 仅与GeocodePlace搭配使用,用于地点地理编码。
此外,您还可以为所有 Geocoding API 端点使用常规 https://www.googleapis.com/auth/cloud-platform 范围。此范围在开发期间非常有用,因为它是使用 gcloud 创建令牌时使用的默认范围。
示例:在本地开发环境中尝试 REST API 调用
如果您想使用 OAuth 令牌试用 Geocoding API,但没有设置用于生成令牌的环境,则可以使用本部分中的过程进行调用。
此示例介绍了如何使用应用默认凭据 (ADC) 提供的 OAuth 令牌进行调用。如需了解如何使用 ADC 通过客户端库调用 Google API,请参阅使用客户端库进行身份验证。
前提条件
您必须先使用 Google Cloud CLI 向 ADC 提供凭据,然后才能使用 ADC 发出 REST 请求:
- 安装并初始化 gcloud CLI。
在本地机器上运行以下
gcloud命令,以创建凭据文件:gcloud auth application-default login
- 系统会显示登录屏幕。在您登录后,您的凭据会存储在 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 令牌调用 Geocoding API。
修改 PROJECT_ID 字段以传递您的 Google Cloud 项目的 ID。
curl -X GET -H 'Content-Type: application/json' \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ -H "X-Goog-User-Project: PROJECT_ID" \ "https://geocode.googleapis.com/v4beta/geocode/address/1600+Amphitheatre+Parkway,+Mountain+View,+CA"
- 点击代码示例中的复制图标
以复制 curl命令。 - 将该命令粘贴到终端窗口中,然后运行该命令。
响应是一个 JSON 对象:
问题排查
如果您的请求返回有关此 API 不支持最终用户凭据的错误消息,请参阅排查 ADC 设置问题。