2012-10-24 110 views
3

我无法获得Google Play授权的刷新令牌。无法获得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

+0

也许他们在redirect_url中的localhost域有问题 – Arnold

回答

2

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

随着授权码的掌握,您需要调用/ o/oauth2 /令牌服务,并使用正确的POST。我很犹豫是否指向Google特定的指令页面,因为它们可能是不完整,矛盾且过时的,但这是对整个过程https://developers.google.com/accounts/docs/OAuth2WebServer的合理概述。

需要注意的一件事是,对于给定客户端ID,第一次成功调用/ o/oauth2/token将返回难以捉摸的刷新令牌,但不会再次返回,除非您重试/ o /提供URL参数approval_prompt = force的oauth2/auth服务。这些信息是您阅读这篇文章的奖励,并且可以为您节省数小时无意义的沮丧。