首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >google api androidpublisher错误代码403

google api androidpublisher错误代码403
EN

Stack Overflow用户
提问于 2014-01-29 21:32:45
回答 2查看 2.2K关注 0票数 3

我遇到了以下问题,大概一个月了,我正在尝试使用以下接口验证应用内购买:https://developers.google.com/android-publisher/authorization

我遵循了文档中的每一步(从Chrome中用Postman Rest客户端做每件事),我可以检索一个accesstoken和一个刷新令牌,但每当我试图查询购买时,它会导致错误代码403访问未配置,但我在设置中配置it!

有没有人有主意?

EN

回答 2

Stack Overflow用户

发布于 2014-04-10 07:31:43

获取此API的accesstoken并非易事。This blog post帮助我开始了正确的方向,但我已经概述了我自己的过程,它不依赖于使用任何外部脚本来工作。具体步骤如下:

  1. 获取客户端ID和密钥刷新令牌(一次性)
  2. 使用刷新令牌获取访问令牌(每小时一次)4使用访问令牌访问

接口

每个步骤的详细信息如下:

获取客户端ID和密码

  1. 转到左侧的Google Developer's console
  2. Go to your project页面
  3. 选择“同意屏幕”并确保电子邮件地址和产品名称字段已设置为
  4. 从左侧菜单中选择"Credentials“,然后选择"create a new client id"
  5. Leave Application type设置为"Web application”并将"Authorized redirect URI“设置为https://localhost。您不需要更改授权的JavaScript Origins.
  6. Click "Create Client ID“并记录由此产生的客户端ID和客户端机密。

获取刷新令牌的

  1. 在web浏览器中,输入以下URL (用正确的值代替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
  2. Accept任何出现的授权请求
  3. 您将被重定向到如下所示的URL:

https://localhost/?code=4/k0TenvwICIgmBoQOazJy4_EnJr6-.clLqtp_vVAIbEnp6UAPFm0GASPqQigI

从该URL的后半部分复制代码,并使用wget将此代码转换为刷新标记;替换

  • 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

  • The生成的JSON文件将包含一个access_token和一个refresh_token。记录refresh_token value

获取访问令牌

  1. https://accounts.google.com/o/oauth2/token发送POST请求,其中设置了以下字段(替换REFRESH_TOKEN、CLIENT_ID、CLIENT_SECRET)
    • grant_type=refresh_token
    • refresh_token=REFRESH_TOKEN
    • client_id=CLIENT_ID
    • client_secret=CLIENT_SECRET

您将得到一个JSON字符串,其中包含一个一个小时有效的access_token。

使用访问令牌进行请求

获取自

https://www.googleapis.com/androidpublisher/v1.1/applications/PACKAGENAME/inapp/SKU/purchases/PURCHASETOKEN

具有包含访问令牌的Authorization标头,例如:

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

票数 4
EN

Stack Overflow用户

发布于 2014-05-30 19:54:32

我和你也有类似的问题。mmigdol的回答很有帮助,但对我没有帮助。我最终设法通过查看这里生成的链接解决了这个问题:https://developers.google.com/oauthplayground/

显然,Android publisher的范围

代码语言:javascript
复制
https://www.googleapis.com/auth/androidpublisher

需要添加到请求授权代码的链接中(甚至在生成刷新令牌之前),方法是添加:

代码语言:javascript
复制
&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fandroidpublisher

要获得以下信息:

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21432626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档