【问题标题】:Required permissions/roles for Google Play purchase validationGoogle Play 购买验证所需的权限/角色
【发布时间】:2019-08-27 01:34:30
【问题描述】:
我想使用 purchases/products/get 方法在服务器上验证我的 Android 应用的应用内购买。
根据this page上的信息,我需要:
- 在 Google Developers Console 上创建一个服务帐户。
- 在 Google Play 管理中心的用户和权限部分授予访问权限。
现在我的问题是:
-
我应该在 Google API 控制台上向此服务帐户授予哪些权限/角色?
-
我应该在 Google Play 管理中心向此服务帐号授予什么权限/角色?
【问题讨论】:
标签:
android
google-api
google-play
in-app-purchase
【解决方案1】:
1.我应该在 Google API 控制台上为此服务帐号授予哪些权限/角色?
有多个角色可能导致服务帐户出现在 Play 的 API Access 页面上,但是 Play 的开发人员支持建议使用 Owner 或 Editor 角色(我没有可以参考的资源,因为这是答案我是通过直接联系支持获得的)。
一些注释/观察:
- 如果不授予任何角色,服务帐号将不会显示在 Play 的
API Access 页面中。
- 根据我的测试,授予
Viewer 角色允许获取购买。* API。但是,根据 Play 支持团队的说法:“在调用 Google Play 开发者 API 时,使用Viewer 角色可能会导致 401 响应代码”。
- 我看到了很多使用
Service account user 角色的建议。但是,此角色允许模拟同一项目中的任何其他服务帐户,以使用其授予的角色和权限执行任何任务(来自documentation)。不确定它对其他人的工作方式 - 可能是因为有一个具有Editor 角色that is created by default 的服务帐户(并允许Service account user 模拟它)。
2。我应该在 Google Play 管理中心向此服务帐号授予什么权限/角色?
This support page 指出,可以通过以下权限之一授予对 Purchases API 的访问权限:
-
View financial data - 此权限仅适用于具有“应用”访问权限的用户。
-
View financial data, orders, and cancellation data survey responses - 此权限仅适用于具有“帐户”访问权限的用户。
最后要记住的是,访问传播可能需要长达 24 小时 - 因此,如果您尝试在服务帐户创建后立即调用 API,您很可能会收到以下错误:
{
"code" : 401,
"errors" : [ {
"domain" : "androidpublisher",
"message" : "The current user has insufficient permissions to perform the requested operation.",
"reason" : "permissionDenied"
} ],
"message" : "The current user has insufficient permissions to perform the requested operation."
}