首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >google-api-client gem,fetch_access_token!-“无效请求”

google-api-client gem,fetch_access_token!-“无效请求”
EN

Stack Overflow用户
提问于 2013-02-28 16:32:18
回答 1查看 1.9K关注 0票数 1

以下是我正在尝试做的事情:

代码语言:javascript
复制
client = Google::APIClient.new
client.authorization.client_id = 'XXXX'
client.authorization.client_secret = 'XXXXX'
client.authorization.scope = 'https://www.googleapis.com/auth/calendar'
client.authorization.redirect_uri = 'http://www.aaaaa.com/'
calendar = client.discovered_api('calendar', 'v3')

为了让access_token发出进一步的请求,我调用了client.authorization.fetch_access_token!

我得到的回答是:

代码语言:javascript
复制
Signet::AuthorizationError: Authorization failed.  Server message:
{
  "error" : "invalid_request"
}
from D:/main/tools/jruby/lib/ruby/gems/1.8/gems/signet-0.4.4/lib/signet/oauth_2/client.rb:865:in `fetch_access_token'

后来,我进行了更改,进行了一些更改,并将grant_type设置为password,并提供了用户名和密码。

代码语言:javascript
复制
client.authorization.grant_type = 'password'
client.authorization.username = 'aaaaa'
client.authorization.password = 'aaaaa'

仍然面临着同样的问题。

文档没有多大帮助。我是否遗漏了什么设置?

EN

回答 1

Stack Overflow用户

发布于 2013-04-14 05:26:11

您可能已经弄清楚了这一点,但我想我知道问题所在。您必须首先导航(在浏览器中)到client.authorization.authorization_uri,在那里您将被要求授予对Google帐户的访问权限。在此之后,您将被重定向到client.authorization.redirect_uri,即您提供的代码中的http://www.aaaaa.com/。将有一个授权码附加到URL:http://www.aaaaa.com?code=<code here>。您必须将client.authorization.code设置为等于该授权码。完成此操作后,您应该能够调用client.authorization.fetch_access_token!,然后再调用该应用程序接口。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15130852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档