Purchases API权限拒绝401求助:配置权限后仍报错
解决Purchases.Products.Get接口401权限不足问题的排查步骤
重点排查项
- 确认服务账号的Play Console角色:检查JSON凭证对应的Google Cloud服务账号,是否已在Play Console的「用户和权限」页面被添加为目标应用的所有者/管理员,仅靠IAM权限可能无法覆盖Play Console内部的权限校验。
- 验证IAM权限的准确性:确保给服务账号分配的是Android Publisher预设角色(如
roles/androidpublisher.editor),避免使用自定义权限集,部分细分权限可能未被正确关联。 - 检查Token请求的作用域:生成Token时必须指定作用域为
https://www.googleapis.com/auth/androidpublisher,错误的作用域会导致权限验证不通过。 - 核对接口参数准确性:调用
Purchases.Products.Get时,确认传入的包名、产品ID、购买Token完全匹配,参数错误有时会被Google返回权限不足的提示。 - 重新生成服务账号凭证:在Google Cloud控制台删除旧的JSON密钥,重新生成新的密钥文件替换项目中的旧文件,旧凭证可能存在权限同步延迟或缓存问题。
- 确认Cloud项目与Play Console的关联状态:进入Play Console的「API访问」页面,检查对应的Google Cloud项目是否已正确链接,且状态为正常启用。
额外测试方案
- 使用Play Console所有者账号直接测试:跳过服务账号,用所有者账号的OAuth2凭证生成Token后调用接口,若成功则问题出在服务账号的权限配置;若失败则可能是Play Console权限体系存在异常。
- 测试同类型其他接口:调用
Purchases.Products.List等基础接口,若其他接口正常,说明该接口的权限要求可能有特殊配置,或目标购买记录存在异常(如测试订单已过期)。
内容的提问来源于stack exchange,提问作者Alperen Sekban
相关产品推荐
相关产品推荐

