4

我无法获得 Google Play 授权的刷新令牌。

我正在按照 Google Play Android 开发者 API 授权页面中的说明进行操作。我创建了一个 OAuth 2.0 客户端 ID。我成功获得了客户 ID。我将所有信息放在 URI 中以获取刷新令牌,我发送请求,系统提示我“允许访问”。当我单击“允许访问”时,出现无法连接错误。这是我的 URI:

https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/androidpublisher&response_type=code&access_type=offline&redirect_uri=https://localhost/oauth2callback&client_id=345674341799.apps.googleusercontent。 com

4

2 回答 2

2

当您创建“web”类型的客户端 ID 并调用 /o/oauth2/auth 服务时,您的用户代理 (/browser) 将尝试重定向 URI。如果它像您示例中的那样是假的(这是默认设置),那么用户代理当然会失败。授权代码仍将是失败 URL 的参数部分,但可能并不明显。

有了授权码,您需要使用正确字段的 POST 调用 /o/oauth2/token 服务。我不愿将您指向特定的 Google 说明页面,因为它们可能是出了名的不完整、矛盾和过时,但这是对整个过程的合理概述https://developers.google.com/accounts/docs/OAuth2WebServer .

要记住的一件事是,对给定客户端 ID 的第一次成功调用 /o/oauth2/token 将返回难以捉摸的刷新令牌,但除非您重试 /o/oauth2/auth 服务,否则它不会再次返回提供 URL 参数approval_prompt=force。那一点信息是您阅读本文的奖励,并将为您节省数小时毫无意义的挫败感。

于 2014-03-13T00:49:50.293 回答
0

无法连接错误包含“代码”参数值。该值应用作对https://accounts.google.com/o/oauth2/token的 POST 请求中的“代码”参数值。

于 2012-10-26T21:25:16.827 回答