Google API客户端错误:Google :: APIClient :: ClientError

时间:2012-08-16 19:17:09

标签: ruby google-drive-api google-api-client

我已经将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客户端库中有什么变化吗?

2 个答案:

答案 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

现在不存在了。 这就是问题。

这是问题的症状。