我遵循这里的步骤。我有authorization code
在浏览器中,但得到一个:
**访问错误:协议错误:"Server error: HTTP/1.0 400 Bad Request"
,当我生成我的请求,试图获得我的令牌。我将目标更改为http,这样我就可以在wireshark中跟踪http请求,并且我得到了添加换行的结果:
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没有提供,我得到一个错误。
似乎对refresh_tokens有限制,虽然从有权访问我的日历的应用程序中删除应用程序不起作用,但从https://console.developers.google.com/中删除我的项目并重新创建它们工作。然后我的代码成功运行,没有任何更改。
尝试更改url以获取有关Google使用https://www.googleapis.com/oauth2/v3/tokeninfo?access_token={accessToken}令牌的信息
小心版本api