API 参考

Android Developer ID Status API 接入:请求、证书参数与错误处理

Android Developer ID Status API 是服务端注册状态查询接口,可以只查包名,也可带公开证书 SHA-256 比对签名。调用者需自行保护 Google Cloud API 密钥,并把正常业务状态、配置错误和暂时服务故障分开处理。

指南摘要

完成 Android Developer ID Status API 接入,使用受保护的 API 密钥查询包名和证书,按 state 与 HTTP 错误分别处理。

适合人群: 为 IDE、CI/CD、内部发布平台或应用管理工具接入官方状态查询的工程师。

发布检查步骤

  1. 在专用 Google Cloud 项目中启用 Android Developer ID Status API。
  2. 限制 API 密钥用途,并存放在服务端或 CI 的秘密存储中。
  3. 提供生产包名,以及需要时规范化后的证书 SHA-256。
  4. 成功响应解析 state;HTTP 和配额错误走独立处理分支。

关键事实

方法GET packageRegistrationStatus:check
认证请求头X-Goog-Api-Key
业务结果state 字段
注意事项

不要把人类可读错误文本当成稳定协议,也不要把可复用 API 密钥放进浏览器 JavaScript 或 URL 查询参数。

详细说明

明确请求契约与错误分支

包名位于请求路径中;可选 certificateFingerprint 查询参数用于提交证书指纹。通过 X-Goog-Api-Key 请求头发送密钥,且请求应来自可信服务端或 CI。示例中的 64_HEX_CHARACTERS 必须换成完整真实指纹。

HTTP 200 返回业务 state;未注册和证书不匹配也是成功完成查询后的结果。INVALID_ARGUMENT、PERMISSION_DENIED 需要修复输入或权限;RESOURCE_EXHAUSTED、INTERNAL、UNAVAILABLE 才根据实际错误有上限地退避重试。

为近期结果缓存附上查询时间。不要让缓存或重试掩盖版本、证书变更,也不要依赖错误消息的语言来控制发布。

  • 密钥使用请求头,不放查询字符串。
  • 分支依据状态码和标准错误状态。
  • 记录时间与输入关联,控制日志范围。
包名与证书请求示例
curl --fail --silent \
  -H "X-Goog-Api-Key: $ANDROID_DEVELOPER_ID_API_KEY" \
  "https://androiddeveloperidstatus.googleapis.com/v1/packages/com.example.app/packageRegistrationStatus:check?certificateFingerprint=64_HEX_CHARACTERS"

填入正式包名;要核对实际 APK 的签名,再补充该产物的公开证书 SHA-256。查询用于发现登记问题,不能代替商店审核。

运行状态检测 →

常见问题

状态接口需要 OAuth 吗?

当前官方状态查询文档使用 API 密钥认证。不要将这个只读接口的认证方式套用到负责注册或账号管理的其他 API;接入时分别阅读各接口契约。

能在浏览器里直接调用吗?

不要把可重复使用的 Google API 密钥暴露给浏览器。由受保护的服务端或 CI 发起请求,再按需要返回有限状态信息;权限、配额和日志应由自己的项目控制。

来源与审核

最后审核: