概览
为了提高身份验证的安全性和可靠性,Maps Platform 客户端 ID 已自 2025 年 5 月 26 日起弃用,并且在 2026 年 5 月 31 日之后将无法再使用。
您必须使用 API 密钥凭据对 Google Maps API 服务流量进行身份验证,而不是使用客户端 ID。本指南介绍了如何从使用客户端 ID 迁移到使用 API 密钥。
请按以下步骤开始操作:
查看当前客户端 ID 用量
在开始迁移流程之前,请列出以下信息:
- 您正在使用客户端 ID 的 Maps Platform 服务。
- 您使用客户端 ID 的应用、网站或系统。
Google 已于 2025 年 5 月向受影响的客户发送电子邮件,通知他们客户端 ID 已弃用。您还可以在通知电子邮件中找到此信息。
在 Cloud 控制台中,您可以在 Google 地图指标页面上查看客户端 ID 用量的最新状态
如需查看 Maps Platform 服务的列表:
- 在 Cloud 控制台中打开指标页面。
- 使用以下设置过滤用量:
- 凭据:仅选择“project_number:<数值标识符>”。
- 设置以下过滤条件。
- 分组依据:API
对于应用、网站或系统的提示:
Cloud 控制台不会显示应用、网站或系统的详细信息。不过,您可以找到一些有关客户端 ID 流量来源的提示。请按照以下步骤操作:
- 在 Cloud 控制台中打开指标页面。
- 从下拉菜单中选择一项 Maps Platform 服务。
- 使用以下设置过滤用量:
- 凭据:仅选择“project_number:<数值标识符>”。
- 设置以下过滤条件。
- 分组依据:平台或网域
- 针对需要检查流量的每项 Maps Platform 服务,从第 2 步开始重复执行。
准备 API 密钥
所有客户端 ID 都与 Google Cloud 项目相关联,使用该项目的 API 密钥可让您访问之前使用客户端 ID 访问的相同功能。我们建议您迁移到关联的项目,以免出现配额问题或缺少功能。
- 查找与您的客户端 ID 相关联的 Cloud 项目:
- 确保您的 Cloud 项目已关联有效的结算账号。
- 为客户端 ID 迁移创建新的 API 密钥。
- 您可以重复使用 Cloud 项目中的任何现有 API 密钥。
- 您可以使用同一 Cloud 项目中的多个 API 密钥,例如,为了区分每个 Maps Platform 服务的流量,或者区分来自不同平台(浏览器、移动应用等)的流量。如需了解有关 API 密钥管理的最佳实践,请参阅安全指南。
保护 API 密钥的安全
请务必保护您的 API 密钥,以防密钥遭到未经授权的访问。
- 为 API 密钥设置应用限制(例如网站、IP 地址、Android 应用或 iOS 应用)。
- 为 API 密钥设置 API 限制。
如需了解详情,请参阅 Google Maps Platform 安全指南。
对于 Maps JavaScript API、Maps Static API 和 Street View Static API,您可以将客户端 ID 上的可信引荐来源网址迁移到 API 密钥限制。您可以在 Cloud 控制台中找到可信引荐来源网址的列表。
查看配额设置
确保您的 Cloud 项目具有预期的配额设置。只有在通过客户端 ID 调用 Maps JavaScript API 客户端服务时,才需要执行此操作。您可以在 Google Maps 配额页面上查看和调整配额设置。
提高了 Maps JavaScript API 客户端服务的配额
如果您在 Maps JavaScript API 上使用以下服务,则在 API 密钥迁移后,配额用量会增加。
查看您当前的配额配置和用量,并相应地调整配额限制。
- 检查您是否在使用客户端 ID 调用 Maps JavaScript API 客户端服务。
- 在 Cloud 控制台中打开指标页面。
- 使用以下设置过滤用量:
- 分组依据:API 方法
- 凭据:仅选择“project_number:<数值标识符>”。
- 然后,您会在“按 API 方法划分的流量”图表中看到方法名称及其流量的列表。
API 方法 |
客户端服务 |
要调整配额的服务 |
google.routes.Directions.Javascript |
路线服务 |
Directions API |
google.routes.DistanceMatrix.Javascript |
距离矩阵服务 |
Distance Matrix API |
google.maps.Elevation.Javascript |
海拔服务 |
Elevation API |
google.places.Geocoding.Javascript |
地理编码服务 |
Geocoding API |
google.places.*.Javascript,但 google.places.Geocoding.Javascript 除外 |
地点库 |
Places API |
- 如果您不使用这些 API 方法,则无需担心配额设置,因为您的客户端 ID 流量已消耗项目配额。
- 估算客户端 ID 配额用量
- 对于每项服务,请同时检查“每秒”和“每天”粒度。
- “每秒”图表:将峰值流量乘以 60,即可得出每分钟所需的额外配额。
- 每日图表:流量峰值应为每日所需的额外配额。
- 调整相应 Maps Platform 服务的配额
- 根据您在第 1 步中找到的方法名称,调整相应服务的配额。
更新代码
将客户端参数替换为密钥参数
在出站 GMP API 调用中,将身份验证凭据从 URL&client={value}
更新为 URL&key={value}
。如果您的应用使用 HTTP 访问 GMP 服务,请更新这些应用以使用 HTTPS。
更新了报告的渠道参数
您可以通过在 API 请求中指定渠道参数来跟踪每个渠道的用量。API 密钥仅支持渠道参数的数值。如果您在渠道参数中使用包含任何非数值的客户端 ID,请将其更新为支持的数值。
如需了解详情,请参阅 Google Maps Platform 报告。
移除 Web 服务的签名参数
对于以下 Web 服务 API,如果您使用 API 密钥访问它们,则无需提供签名参数。仅从 API 请求中移除签名参数。
- Directions API(旧版)
- Distance Matrix API(旧版)
- Geocoding API
- Elevation API
- Time Zone API
如需了解详情,请参阅高级计划概览。
Imagery API 的签名密钥
Maps Static API 和 Street View Static API 仍需要 signature 参数。它们会接受少量未签名的请求以用于测试,但一旦达到生产环境中的阈值,就会开始失败。将签名密钥从客户端 ID 的签名密钥替换为 API 密钥的签名密钥。您可以使用相同的签名算法,但需要使用其他签名密钥。如需了解详情,请参阅使用数字签名。
监控客户端 ID 流量
部署完成后,使用 Cloud 控制台信息中心确认流量已成功迁移。您会开始看到客户端 ID 流量减少,在按凭据分组时,信息中心会以“project_number:123456”格式显示该流量。
暂停客户端 ID
我们强烈建议开发者在迁移后暂停使用客户端 ID。这是为了保护您的凭据免受任何意外流量的影响,并确认您的客户端 ID 上的任何剩余用量都不重要(例如测试、缓存、机器人...),并且可以返回错误而不会造成业务影响。您可以在 Cloud 控制台中暂停客户端 ID。如需了解详情,请参阅专业版方案身份验证概览。
问题排查
如何查看我们的请求是否失败?
您可以在响应代码图表中查看错误统计信息
ApiNotActivatedMapError
或REQUEST_DENIED
错误
如果您未在 Cloud 项目中启用该服务,则会看到 ApiNotActivatedMapError
或 REQUEST_DENIED
错误。按照相关说明启用该服务。
RefererNotAllowedMapError
个错误
如果您的来源网域未添加到 API 密钥中,您将看到 RefererNotAllowedMapError 错误。查看“保护您的 API 密钥”部分,并将您的网域添加到 API 密钥中。
OverQuotaMapError
或OVER_QUERY_LIMIT
错误
如果配置的配额不足以覆盖流量,您会看到 OverQuotaMapError
或 OVER_QUERY_LIMIT
。查看“检查配额设置”部分,并相应地调整配额。
“对该 API 的请求必须通过 SSL 进行”错误
如果您收到以下错误消息,请将 API 请求从“http://”更新为“https://”。
{
"error_message" : "Requests to this API must be over SSL. Load the API with
\"https://\" instead of \"http://\".",
"results" : [],
"status" : "REQUEST_DENIED"
}