Android发布者权限被拒绝仅检查付款(其他api成功)
Posted
技术标签:
【中文标题】Android发布者权限被拒绝仅检查付款(其他api成功)【英文标题】:Android publisher permission Denied only check payment(other api successfully) 【发布时间】:2019-07-10 11:08:04 【问题描述】:我正在尝试调用 api Purchases.products: get 来验证您的购买 它会产生这样的结果
"error":
"errors": [
"domain": "androidpublisher",
"reason": "permissionDenied",
"message": "The current user has insufficient permissions to perform the requested operation."
],
"code": 401,
"message": "The current user has insufficient permissions to perform the requested operation."
项目绑定正确
拥有所有者权限的新服务帐户是created
此服务帐户已被授予google play console 中的权限
Documentation 这里说你能做什么
收到的令牌不仅适用于任何其他 api 的购买检查,它返回结果(Inappproducts: list is work)
验证 url 是正确构建的,因为如果你得到一个令牌 client to server,那么这个 api 也可以工作 - 但我需要一个服务器来服务器身份验证
scopes = ['https://www.googleapis.com/auth/androidpublisher']
authorization = Google::Auth.get_application_default(scopes)
uri = "https://www.googleapis.com/androidpublisher/v3/applications/#ENV['ANDROID_PACKAGE_NAME']/purchases/products/#purchasable.purchase_uuid/tokens/#purchase_token?access_token=#authorization.fetch_access_token!['access_token']"
response = RestClient::Request.execute method: :get,
url: uri,
headers: 'Content-Type':'application/json'
和
file = File.read('config/google_key.json')
values = JSON.parse(file)
oauth = Signet::OAuth2::Client.new(
issuer: values[:client_email]",
audience: "https://www.googleapis.com/oauth2/v4/token",
scope: "https://www.googleapis.com/auth/androidpublisher",
client_id: values[:client_id],
signing_key: OpenSSL::PKey::RSA.new(values[:private_key]),
)
jwt = oauth.to_jwt
url = "https://www.googleapis.com/oauth2/v4/token"
begin
response = RestClient::Request.execute method: :post,
url: url,
headers: 'Content-Type': 'application/json',
payload:
grant_type: "urn:ietf:params:oauth:grant-type:jwt-bearer",
assertion: jwt
result = JSON.parse response.body
rescue => e
puts e.response.to_str
result = JSON.parse(e.response.to_s)
end
我期待这个result
更新 1
添加tokeninfo
【问题讨论】:
【参考方案1】:我喜欢谷歌。
使用我的第一个服务帐户 7 天后,它工作了 - 但是 7 天!!!! 7天 !!!!这只是恐怖
Google 的各位,您需要 7 天时间才能访问 api! - 这太荒谬了
好的,您需要这样做才能获得访问权限
在谷歌云中创建服务帐户(管理员权限) 创建 google play 控制台并链接项目 google cloud 在 google play 控制台中添加电子邮件服务帐户 1 周后它会起作用【讨论】:
那么您是否必须联系谷歌支持或 7 天后问题自动解决?是否定期取消检查它是否开始工作或者他们是否向您发送了消息?您能否提供更多详细信息,我现在在同一条船上并试图弄清楚该怎么做。谢谢 @DataGreed 嗨,这是一个问题,7 天后自动解决))我认为 GCP 需要时间来共享访问权限。我的建议是再次检查所有内容,如果一切顺利,请等待几天。明天就会出现问题,您可以尝试创建新的 сredentials 并再等 2 天。您将创建 temp decision 并且当 сredentials 起作用时,您将替换 temp 决定以上是关于Android发布者权限被拒绝仅检查付款(其他api成功)的主要内容,如果未能解决你的问题,请参考以下文章
Android:java.lang.SecurityException:权限拒绝:启动意图