指南摘要
完成 Android Developer ID Status API 接入,使用受保护的 API 密钥查询包名和证书,按 state 与 HTTP 错误分别处理。
适合人群: 为 IDE、CI/CD、内部发布平台或应用管理工具接入官方状态查询的工程师。
发布检查步骤
- 在专用 Google Cloud 项目中启用 Android Developer ID Status API。
- 限制 API 密钥用途,并存放在服务端或 CI 的秘密存储中。
- 提供生产包名,以及需要时规范化后的证书 SHA-256。
- 成功响应解析 state;HTTP 和配额错误走独立处理分支。
关键事实
不要把人类可读错误文本当成稳定协议,也不要把可复用 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 发起请求,再按需要返回有限状态信息;权限、配额和日志应由自己的项目控制。
来源与审核
最后审核: