2015-09-12 151 views
3

我按照此处的步骤https://developers.google.com/identity/protocols/OAuth2InstalledApp。我在浏览器中获得了授权码,但是在生成我的请求以尝试获取我的令牌时,出现** Access错误:协议错误:“服务器错误:HTTP/1.0 400错误请求”。我改变了目标HTTP这样我就可以跟踪在Wireshark的http请求,我得到这个跟换行补充说:尝试获取访问令牌时发生Invalid_grant错误googleapi

POST /oauth2/v3/token HTTP/1.0 
Accept: */* 
Accept-Charset: utf-8 
Host: www.googleapis.com 
User-Agent: REBOL 
Content-Type: application/x-www-form-urlencoded 
Content-Length: 251 

code=url-encoded-my-authorisation-code& 
client_id=my-client-id.apps.googleusercontent.com& 
client_secret=my-client-secret& 
redirect_uri=urn-blah-blah& 
grant_type=authorization_code 

这对我来说很好。

当我使用http相反,我得到这个消息

{"error":"internal_failure","error_description":"SSL is required to perform this operation."} 

但遗憾的是它不告诉我,如果我的要求,否则,断帮我与SSL请求。 PS:我已经进一步发展了。我从redirect_uri中删除了URL编码,现在我得到一个invalid_grant错误。在此之前,它抱怨redirect_uri缺少计划。

有一次,我在获得访问令牌方面取得了成功,但是我一直无法重现这一点。我看到我的应用列出了我已授予访问令牌的应用。我删除了我的应用程序,并试图再次授予,但保持失败。

我的时钟是正确的,所以这不是问题。 oauth2游乐场运行良好,据我所知我也在做同样的事情,但没有成功。

我的安装应用程序,所以我不能提供我的凭据操场作为一种方式来信任他们的redirect_uri没有提供,我得到一个错误。

回答

0

看起来refresh_tokens有一个限制,虽然从有权限访问我的日历的应用程序中删除应用程序不起作用,但从https://console.developers.google.com/删除我的项目并重新创建它们。我的代码然后成功运行,没有任何改变。

相关问题