我遇到了以下问题,比如已经有一个月了,我正在尝试使用以下API验证inapp购买:https://developers.google.com/android-publisher/authorization
我按照文档中的每一步(使用Postman Rest Client从Chrome进行操作),我可以检索accessstoken和刷新令牌,但每当我尝试查询购买时,都会导致错误代码403访问未配置,但我在设定中确认了它!
任何有想法的人都可以吗?
答案 0 :(得分:4)
获取此API的accessstoken远非直截了当。 This blog post帮助我开始朝着正确的方向前进,但我已经概述了我自己的流程,它不依赖于使用任何外部脚本来工作。步骤是:
以下详述每个步骤:
获取客户端ID和密钥
https://localhost
。您无需更改授权的JavaScript来源。获取刷新令牌
在网络浏览器中,输入以下网址(用client_id替换正确的值):
https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/androidpublisher&response_type=code&access_type=offline&redirect_uri=https://localhost&client_id=XXXX
接受任何出现的授权请求
然后,您将被重定向到这样的网址:
https://localhost/?code=4/k0TenvwICIgmBoQOazJy4_EnJr6-.clLqtp_vVAIbEnp6UAPFm0GASPqQigI
复制此网址后半部分的代码
使用wget将此代码转换为刷新令牌;替换CODE,CLIENT_ID和CLIENT_SECRET
wget --debug --post-data="grant_type=authorization_code&code=CODE&client_id=CLIENT_ID&client_secret=CLIENT_SECRET&redirect_uri=https://localhost" https://accounts.google.com/o/oauth2/token
生成的JSON文件将包含access_token和refresh_token。记录refresh_token值
获取访问令牌
您将获得一个包含access_token的JSON字符串,该字符串将在一小时内完成。
使用访问令牌发出API请求
从
获取 https://www.googleapis.com/androidpublisher/v1.1/applications/PACKAGENAME/inapp/SKU/purchases/PURCHASETOKEN
,例如:
Authorization: Bearer ya29.1.AADtN_WoM4-4Fb1voFL-emcUWluijCzwvc9Z-FYM9SPvK03HCbGkdROJTVVPSLHK2IlVJQ
您也可以将访问令牌作为HTTP查询参数传递,例如
https://www.googleapis.com/androidpublisher/v1.1/applications/PACKAGENAME/inapp/SKU/purchases/PURCHASETOKEN?authorization_token=AUTHTOKEN
答案 1 :(得分:0)
我遇到了类似的问题。 mmigdol的回答很有帮助,但它对我没有帮助。我终于通过查看此处生成的链接来设法解决它:https://developers.google.com/oauthplayground/
显然,Android发布商范围
https://www.googleapis.com/auth/androidpublisher
需要通过添加:将添加到请求授权代码的链接中(甚至在生成刷新令牌之前)
&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fandroidpublisher
得到这个:
https://accounts.google.com/o/oauth2/auth?redirect_uri=<YOUR_REDIRECT_URI>&response_type=code&client_id=<YOUR_CLIENT_ID>&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fandroidpublisher&approval_prompt=force&access_type=offline