客户端 ID 迁移指南

概览

请按以下步骤开始操作:

  1. 查看当前的客户端 ID 使用情况
  2. 准备 API 密钥
  3. 查看配额设置
  4. 更新代码
  5. 监控客户端 ID 流量
  6. 暂停客户端 ID
  7. 客户端 ID 自助临时重新激活

查看当前客户端 ID 用量

在开始迁移流程之前,请列出以下内容:

  • 您通过客户端 ID 使用的 Maps Platform 服务。
  • 您正在使用客户端 ID 的应用、网站或系统。

Google 已于 2025 年 5 月向受影响的客户发送了有关客户端 ID 弃用的邮件通知。您也可以在通知邮件中找到此信息。

在 Cloud 控制台中,您可以在 Google 地图指标页面上查看客户端 ID 用量的最新状态

如需查看 Maps Platform 服务列表:

  1. 在 Cloud 控制台中打开指标页面。
  2. 使用以下设置过滤用量:
    • 凭证:仅选择“project_number:<numerical identifier>”。
  3. 设置以下过滤条件。
    • 分组依据:API

对于应用、网站或系统的提示:

Cloud 控制台不会显示应用、网站或系统的详细信息。 不过,您可以找到一些有关客户端 ID 流量来源的提示。请按照以下步骤操作:

  1. 在 Cloud 控制台中打开指标页面。
  2. 从下拉菜单中选择一项 Maps Platform 服务。
  3. 使用以下设置过滤用量:
    • 凭证:仅选择“project_number:<numerical identifier>”。
  4. 设置以下过滤条件。
    • 分组依据:平台或网域
  5. 针对您需要检查流量的每个 Maps Platform 服务,从第 2 步开始重复上述步骤。

准备 API 密钥

所有客户端 ID 都与一个 Google Cloud 项目相关联,使用该项目中的 API 密钥,您将能够访问之前使用客户端 ID 访问过的相同功能。我们建议您迁移到关联的项目,以避免配额问题或功能缺失。

  1. 查找与您的客户端 ID 相关联的云项目:
  2. 确保您的 Cloud 项目已关联到有效的结算账号。
  3. 创建新的 API 密钥,用于客户端 ID 迁移。
    • 您可以重复使用 Cloud 项目中的任何现有 API 密钥。
    • 您可以使用同一云项目中的多个 API 密钥,例如,为了区分每个 Maps Platform 服务的流量,或区分来自不同平台(浏览器、移动应用等)的流量。如需了解 API 密钥管理的最佳实践,请参阅安全指南。

保护 API 密钥的安全

请务必保护您的 API 密钥,防止其遭到未经授权的访问。

  • 为 API 密钥设置应用限制(例如网站、IP 地址、Android 应用或 iOS 应用)。
  • 为 API 密钥设置 API 限制。

如需了解详情,请参阅 Google Maps Platform 安全指南。

对于 Maps JavaScript API、Maps Static API 和街景静态 API,您可以将客户端 ID 上的可信引荐来源网址迁移到 API 密钥限制。您可以在 Cloud 控制台中找到可信引荐来源网址列表。

查看配额设置

确保您的 Cloud 项目具有预期的配额设置。只有在您通过客户端 ID 调用 Maps JavaScript API 客户端服务时,才需要执行此操作。您可以在 Google 地图配额页面上查看和调整配额设置。

详细了解配额报告

Maps JavaScript API 客户端服务的配额增加

如果您在 Maps JavaScript API 中使用以下服务,则在 API 密钥迁移后,您会看到配额用量增加。

查看您当前的配额配置、当前用量,并相应地调整配额限制。

  1. 检查您是否在使用 Maps JavaScript API 客户端服务时使用了客户端 ID。
    • 在 Cloud 控制台中打开指标页面。
    • 使用以下设置过滤用量:
      • 分组依据:API 方法
      • 凭证:仅选择“project_number:<numerical identifier>”。
    • 然后,您将在“按 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 步中找到的方法名称,调整相应服务的配额。

更新代码

将 client 参数替换为 key 参数

在传出 GMP API 调用中,将身份验证凭证从 URL&client={value} 更新为 URL&key={value}。如果您的应用使用 HTTP 访问 GMP 服务,请将其更新为使用 HTTPS。

更新用于报告的渠道参数

您可以通过在 API 请求中指定 channel 参数来跟踪每个渠道的用量。API 密钥仅支持为渠道参数使用数值。如果您将客户端 ID 与渠道参数的任何非数值搭配使用,请将其更新为支持的值。

如需了解详情,请参阅 Google Maps Platform 报告。

移除 Web 服务的签名参数

对于以下 Web Service API,当您使用 API 密钥访问它们时,不需要签名参数。只需从 API 请求中移除签名参数即可。

  • Directions API(旧版)
  • Distance Matrix API(旧版)
  • Geocoding API
  • Elevation API
  • Time Zone API

如需了解详情,请参阅专业版方案概览。

Imagery API 的签名密钥

Maps Static API 和街景静态 API 仍需要签名参数。它们会接受少量未经签名的请求以进行测试,但一旦在生产环境中达到阈值,就会开始失败。将签名 Secret 从客户端 ID 的签名 Secret 替换为 API 密钥的签名 Secret。您可以使用相同的签名算法,但需要使用其他签名密钥。如需了解详情,请参阅使用数字签名。

监控客户端 ID 流量

部署后,使用 Cloud 控制台信息中心确认流量已成功迁移。您会开始看到客户端 ID 流量减少,在信息中心内按凭据分组时,这些流量会以“project_number:123456”格式显示。

暂停客户端 ID

我们强烈建议开发者在迁移后暂停客户端 ID。这是为了保护您的凭据免受任何意外流量的影响,并确认您的客户端 ID 的任何剩余使用情况都不重要(例如测试、缓存、机器人等),并且可以返回错误而不会造成业务影响。您可以在 Cloud 控制台中暂停客户端 ID。如需了解更多详情,请参阅专业版方案身份验证概览。

客户端 ID 自助临时重新激活

由于 Google Maps Platform 客户端 ID 已于 2026 年 5 月进入分阶段弃用期,因此无法再保证服务可用性。在预定的服务终止流程中,访问权限会定期受到限制。虽然服务通常会在几小时内自动恢复,但如果您需要立即恢复,也可以选择手动重新激活访问权限。

如需紧急恢复访问权限,您可以通过 Google Cloud 控制台执行自助重新激活:

如果您无法快速迁移到 API 密钥,并且希望暂时免受进一步中断的影响,请与 Google Maps Platform 支持团队联系,并提供以下详细信息:

  • 客户端 ID
  • 具体应用场景
  • 目标迁移日期
  • 业务影响评估

客户端 ID 用量报告 - 摘自结算报告

对于无法访问项目指标的用户(例如结算管理员,尤其是 Maps Platform 合作伙伴),查看结算报告(而非项目指标)会很有用。虽然结算报告有 1-2 天的延迟,但其优势在于可以显示超过 30 天的用量和费用数据分析。

您可以按照以下步骤通过 Google Cloud 控制台监控客户端 ID 的使用情况:

  1. 前往 Google Cloud 控制台中的结算 > 报告页面。
  2. (可选,仅与合作伙伴相关)应用过滤条件以选择所需的子结算账号。
  3. 按标签键 goog-maps-api-key-suffix 对报告数据进行分组。此标签会显示 API 密钥的尾随字符。
  4. 通过查找 goog-maps-api-key-suffix 标签缺失或为空的条目来识别客户端 ID 流量,因为客户端 ID 请求不会填充此标签。
  5. 忽略不应与 API 请求关联的 SKU,例如订阅 SKU。

问题排查

如何查看请求是否失败?

您可以在响应代码图表上查看错误统计信息

ApiNotActivatedMapError 或 REQUEST_DENIED 错误

如果您未在 Cloud 项目中启用该服务,则会看到 ApiNotActivatedMapError 或 REQUEST_DENIED 错误。按照说明启用该服务。

RefererNotAllowedMapError 个错误

如果您的来源网域未添加到 API 密钥中,您会看到 RefererNotAllowedMapError 错误。查看“保护您的 API 密钥”部分,并将您的网域添加到 API 密钥。

OverQuotaMapError 或 OVER_QUERY_LIMIT 错误

如果配置的配额不足以覆盖流量,您将看到 OverQuotaMapError 或 OVER_QUERY_LIMIT。查看“查看配额设置”部分,并相应地调整配额。

“Requests to this API must be over SSL”(对此 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"
}