3

我正在按照这里的步骤。我authorization code在浏览器中有,但得到一个:

** 访问错误:协议错误:“服务器错误: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 的一种方式,并且我收到错误消息。

4

2 回答 2

0

似乎对 refresh_tokens 有限制,尽管从有权访问我的日历的人那里删除该应用程序不起作用,但从https://console.developers.google.com/删除我的项目并重新创建它们是可行的。然后我的代码在没有任何更改的情况下成功运行。

于 2015-09-16T02:43:01.300 回答
0

尝试更改 url 以从 Google 获取有关令牌的信息,使用https://www.googleapis.com/oauth2/v3/tokeninfo?access_token= {accessToken}

小心 vi 版本 api

于 2017-01-13T10:07:47.103 回答