我已经将Google云端硬盘与我的应用集成在一起,直到今天它仍然运行良好。我没有更改任何代码或客户端ID,现在在我们的网站上授权GDrive时出现此错误:
谷歌:: APIClient :: ClientError
无法在https://www.googleapis.com/discovery/v1/apis/oauth2/v2/rest
检索发现文档我正在使用Ruby Google Api Client,这是抛出错误的代码:
require 'google/api_client'
gclient ||= (begin
client = Google::APIClient.new
client.authorization.client_id = Rails.application.config.gdrive_client_id
client.authorization.client_secret = Rails.application.config.gdrive_client_secret
client.authorization.redirect_uri = "#{request.protocol}#{Rails.application.config.host_url}/users/auth/gdrive"
client.authorization.access_token = auth_token.token
client.authorization.scope = [
"https://www.googleapis.com/auth/drive",
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/userinfo.profile"
]
client
end)
result = gclient.execute!(
:api_method => 'oauth2.userinfo.get',
:version => 'v2'
)
错误出现在“result = gclient.execute!”。 Google Ruby API客户端库中有什么变化吗?
答案 0 :(得分:2)
不 - Ruby库中没有任何改变。这是因为Google在https://www.googleapis.com/discovery/v1/apis提供的网络服务的更改。
我知道这一点,因为我今天从python API库遇到了同样的问题。
我找到了部分解决方法,即避免使用发现服务并直接点击URL。 OAuth2 userinfo服务的URL是
https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=USER_TOKEN_HERE
这不是一个很好的长期解决方案,但希望能阻止你,直到谷歌修复他们的发现服务。
更新 - 看起来现在已经恢复(截至8月16日,2:07PST)
答案 1 :(得分:0)
曾经有过
{ “id”:“oauth:v2”, “名字”:“oauth”, “版本”:“v2” ... }
on https://www.googleapis.com/discovery/v1/apis
现在不存在了。 这就是问题。
这是问题的症状。