3

Googleドライブをアプリに統合しましたが、今日まですべて正常に機能していました。コードやクライアントIDを変更しなかったため、サイトでGDriveを認証すると次のエラーが発生します。

Google :: APIClient :: ClientError

https://www.googleapis.com/discovery/v1/apis/oauth2/v2/restで検出ドキュメントを取得できませんでした

私はRubyGoogleApi 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クライアントライブラリに何か変更がありましたか?

4

2 に答える 2

2

いいえ-Rubyライブラリでは何も変更されていません。これは、Googleがhttps://www.googleapis.com/discovery/v1/apisで提供するWebサービスの変更が原因です。

今日、Python APIライブラリから同じ問題が発生したため、これを知っています。

部分的な回避策を見つけました。これは、検出サービスの使用を避け、URLに直接アクセスすることです。OAuth2userinfoサービスのURLは次のとおりです。

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

これは優れた長期的な解決策ではありませんが、グーグルが発見サービスを修正するまで、うまくいけばあなたを引き留めます。

更新-今のところバックアップされているようです(8月16日2:07PST現在)

于 2012-08-16T20:45:01.637 に答える
0

以前は

{"id": "oauth:v2"、 "name": "oauth"、 "version": "v2" ...}

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

今はありません。それが問題です。

それは問題の症状です。

于 2012-08-16T20:48:33.487 に答える