Google API'Purchases.products:get'突然返回401错误

时间:2019-01-07 11:01:22

标签: google-api google-play in-app-purchase google-oauth google-authentication

Purchases.products: get一直运作良好,直到2周前。但是,它突然开始返回错误。 (我没有更改任何选项)

它仍然可以通过POSThttps://accounts.google.com/o/oauth2/tokengrant_typeclient_id(但通过client_secretrefresh_token的{​​{1}}请求来刷新令牌返回了访问令牌,403发生如下错误。

{
    "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."
    }
}

这是代表Purchases.products: get的错误率的Google仪表板

enter image description here

我发现了the question,但仍然无法正常工作。

----------编辑----------

我想描述更多细节。我不知道这是不是正确的方法,因为我实际上只是在修复某人做过的旧版系统。

以上过程(刷新令牌并请求购买信息)在服务器端完成。供服务器端验证购买信息APP发送是否正确。

APP发送购买信息时,服务器端只需调用具有预定义属性(client_id,client_secret,grant_type)的HTTP请求(POST和GET)即可。

这意味着任何地方都没有登录过程。

此外,我使用的client_idclient_secret似乎是通过以下图片中的create-credentials在google-developer-console中创建的,而不是在注册APP时创建的。

enter image description here

----------编辑----------

我尝试使用所有者帐户重新创建client_id。屏幕截图来自google developer console->IAM&Admin->IAM

enter image description here

但是,它仍然是相同的错误。

1 个答案:

答案 0 :(得分:1)

  

“当前用户的权限不足,无法执行所请求的操作。”

您当前已通过身份验证的用户不再有权访问您尝试访问的数据。要么再次赋予用户访问权限,要么使用具有访问权限的用户登录。

ClientId

当您希望使用Google API时,必须注册您的应用程序。当您这样做时,google为您提供了一个客户ID。这会在您运行应用程序时将其标识为google。

访问用户数据

要访问私人用户数据,您必须拥有数据所有者的权限才能访问它。您的应用程序运行(由客户端ID表示),系统将提示用户登录google,并同意您的应用程序访问其数据。

如果用户失去对他们已授予您的应用程序访问权限的数据的访问权,则会失去对应用程序的访问权限。