我目前正在研究一种仅通过 HTTP 请求调用使用 Google 购买状态 API 的方法,但我遇到了障碍。我有一个 Google Play 应用设置,以及 Google Console 帐户的所有权。
基本上,我只想检查用户在我的服务器上的购买状态。我应该使用的唯一信息是购买令牌、产品 ID 和产品包。
我已经在 developer.android.com/google/play/billing/gp-purchase-status-api.html 上关注了所有关于这样做的文档
我尝试进行的 HTTPS 请求调用是这样的(产品名称和实际字符串被替换):
googleapis.com/androidpublisher/v1.1/applications/(com.product.myproduct)/inapp/(com.product.myproduct.product1)/purchases/(myproductpurchasestring)?access_token=(myaccesstokenstring)
我的回答总是这样:
{
"error": {
"errors": [
{
"domain": "androidpublisher",
"reason": "developerDoesNotOwnApplication",
"message": "This developer account does not own the application."
}
],
"code": 401,
"message": "This developer account does not own the application."
}
}
通过此 http 请求调用轮询我的访问令牌时:googleapis.com/oauth2/v1/tokeninfo?access_token=(myaccesstokenstring)
这是我的回应:
{
"issued_to": "12345.apps.googleusercontent.com",
"audience": "12345.apps.googleusercontent.com",
"scope": "https://www.googleapis.com/auth/androidpublisher",
"expires_in": 3319,
"access_type": "offline"
}
因此,根据https://developers.google.com/accounts/docs/OAuth2#webserver上的文档,我需要:
授权自己并检索从 Google API 控制台的 API 访问部分中的“Web 应用程序的客户端 ID”生成的可刷新访问令牌。我已经做到了。
通过以下两种方式之一使用此访问令牌进行 google API 调用:将字符串附加到 HTTP 标头“授权”,或作为带有属性 access_token=(mytokenstring) 的 HTTPS 请求本身的一部分。这部分对我不起作用,我总是收到未经授权的消息。
我想我的问题是:是否可以使用简单的 HTTPS 请求调用(没有外部库支持)来检索已购买项目的状态,而无需用户在后端服务器上进行交互?
我真的很感激任何帮助,大多数其他线程都是关于如何获取刷新令牌的,但我已经介绍过。