我按照此处的步骤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没有提供,我得到一个错误。