【问题标题】:Google Play API returning error 401Google Play API 返回错误 401
【发布时间】:2015-07-03 15:37:14
【问题描述】:

我正在使用 gradle-play-publisher 库将我的应用上传到 Google Play,但在执行发布任务时出现错误 401 Unauthorized。 我在 Google Play 的开发帐户和开发控制台的服务帐户已设置。播放 API 已启用。

我从构建日志中看到,发送的第一个请求是:

POST https://accounts.google.com/o/oauth2/token

我得到 200 OK 和以下 json:

{
  "access_token" : "< some value here>",
  "token_type" : "Bearer",
  "expires_in" : 3600
}

然后发送下一个请求:

POST https://www.googleapis.com/androidpublisher/v2/applications/< my app's package name here>/edits

首先,我注意到了这个标题:

Authorization: <Not Logged>

其次,我收到此错误作为响应

401 Unauthorized
WWW-Authenticate: Bearer realm="https://accounts.google.com/", error=invalid_token

有人遇到过同样的问题吗?一切似乎都设置正确,所以我不知道出了什么问题。谢谢。

【问题讨论】:

    标签: android google-play android-gradle-plugin


    【解决方案1】:

    你的错误意味着

    服务器以 401(未授权)状态码响应,但未能提供单个身份验证挑战(WWW-Authenticate 标头) 因此 HttpClient 无法自动从身份验证失败中恢复。

    检查您的应用程序中的 HTTP POST 请求,这可能是预期的 HTML 表单中缺少一些凭据

    我希望您已经在使用 POSTMAN google chrome 扩展程序测试您的 REST API(url)。

    现在,如果你的 rest api 工作正常,那么考虑在你的代码中使用它,逐步尝试找出以下内容

    1. 服务器实现错误或客户端实现错误或url
    2. 参数错误
    3. 检查您的&lt;uses-permission android:name="android.permission.INTERNET" /&gt; AndroidManifest.xml

    【讨论】:

    • 感谢您的回复。问题是:我没有手动发送任何这些请求。我在问题中提到的图书馆应该为我做所有事情。它似乎对其他人有用。
    • 谢谢,我完全知道错误 401 的含义。正如我已经提到的:我无权访问发送这些请求的代码。它在图书馆里面。我唯一能控制的是 Google API 的项目配置。所以我希望得到类似“是的,我遇到了同样的问题,只需转到 [这里] 并打开 [此功能]”这样的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-27
    • 2017-09-12
    • 1970-01-01
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    相关资源
    最近更新 更多