3

我已将 Google Drive 与我的应用程序集成在一起,直到今天它都运行良好。我没有更改任何代码或客户端 ID,现在在我们网站上授权 GDrive 时出现此错误:

Google::APIClient::ClientError

无法在以下位置检索发现文档:https ://www.googleapis.com/discovery/v1/apis/oauth2/v2/rest

我正在使用 Ruby Google Api 客户端,这是引发错误的代码:

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 客户端库有什么变化吗?

4

2 回答 2

2

不 - Ruby 库中没有任何变化。这是由于 Google 在https://www.googleapis.com/discovery/v1/apis提供的网络服务发生了变化。

我知道这一点,因为我今天从 python API 库中遇到了同样的问题。

我找到了一个部分解决方法,即避免使用发现服务并直接点击 URL。OAuth2 用户信息服务的 URL 是

https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=USER_TOKEN_HERE

这不是一个很好的长期解决方案,但希望能在谷歌修复他们的发现服务之前让你坚持下去。

更新 - 看起来它现在已经备份(截至 8 月 16 日,太平洋标准时间 2:07)

于 2012-08-16T20:45:01.637 回答
0

这里曾经有

{“id”:“oauth:v2”,“名称”:“oauth”,“版本”:“v2”...}

https://www.googleapis.com/discovery/v1/apis

它现在不在那里。那就是问题所在。

这是问题的一个症状。

于 2012-08-16T20:48:33.487 回答