无效的授予我想创建一个应用程序,我只是直接连接到我的日历...但我不想参与重新-authenticating。我只想编码认证一次,并完成它。当试图授权服务器到服务器类型的应用程序在Ruby日历访问Google日历
的验证代码如下:
key = Google::APIClient::PKCS12.load_key(SERVICE_ACCOUNT_PKCS12_FILE_PATH, PASSWORD)
asserter = Google::APIClient::JWTAsserter.new(
SERVICE_ACCOUNT_EMAIL,
'https://www.googleapis.com/auth/calendar',
key)
@client = Google::APIClient.new
@client.authorization = asserter.authorize#(SERVICE_ACCOUNT_EMAIL)
@client
我SERVICE_ACCOUNT_...PKCS .
文件是与我的末日应用沿着目录的根目录。
我在我的Gmail帐户上启用了Google Calendar API。
我一直在寻找认证的方法在这里: https://code.google.com/p/google-api-ruby-client/(经授权,在那里谈论服务器到服务器的通信)
$ ruby server.rb
Faraday: you may want to install system_timer for reliable timeouts
/home/me/.rvm/gems/ruby-1.8.7-p371/gems/faraday-0.8.4/lib/faraday/utils.rb:16: warning: already initialized constant KeyMap
/home/me/.rvm/gems/ruby-1.8.7-p371/gems/faraday-0.8.4/lib/faraday/utils.rb:177: warning: already initialized constant DEFAULT_SEP
W, [2013-01-15T09:52:11.371122 #28607] WARN -- : Google::APIClient - Please provide :application_name and :application_version when initializing the client
/home/me/.rvm/gems/ruby-1.8.7-p371/gems/signet-0.4.4/lib/signet/oauth_2/client.rb:869:in `fetch_access_token': Authorization failed. Server message: (Signet::AuthorizationError)
{
"error" : "invalid_grant"
}
from /home/me/.rvm/gems/ruby-1.8.7-p371/gems/signet-0.4.4/lib/signet/oauth_2/client.rb:882:in `fetch_access_token!'
from /home/me/.rvm/gems/ruby-1.8.7-p371/gems/google-api-client-0.6.1/lib/google/api_client/auth/jwt_asserter.rb:116:in `authorize'
from server.rb:32:in `build_client'
from server.rb:38
还有什么问题呢?为什么我得到这个错误? - 特别是因为我几乎从谷歌的网站上复制了代码。
UPDATE:
发现这一点:
invalid_grant trying to get oAuth token from google
说我应该这样做: “确保您在请求中指定ACCESS_TYPE =下线。”
我该如何用红宝石做到这一点?没有完全重做http请求?
我在与到驱动器的连接类似的问题。今天早上刚刚开始。 – tbeseda
你有没有达成决议? – nurettin
有没有运气?有同样的问题 – hakunin