GoogleDriveAPIで深刻な問題が発生しています。
ここで私と一緒に耐えてください、説明することがたくさんあります。
私は元々、自分のGoogleアカウントの1つを使用してAPIを機能させていtest@google.com
ました。簡単にするために、APIを呼び出しましょう。Google Picker UIが機能し、ドライブアカウントのファイルのリストが正しく表示されます。
google-ruby-api-client
APP_IDに設定し、公式のgemを使用してエンドポイントを使用してDriveAPIに接続するサーバー側のロジックがありdrive.files.get
ます。次に、このスニペットを使用してファイルのメタデータをダウンロードできます。
require 'google/api_client'
client = Google::APIClient.new
# client ID and secret from Google APIs Console
client.authorization.client_id = "{CLIENT_ID}"
client.authorization.client_secret = "{SECRET}"
client.authorization.redirect_uri = "http://myapp.com/users/auth/gdrive"
# access token stored in database from oauth2 flow
client.authorization.access_token = "TOKEN"
client.authorization.scope = [
"https://www.googleapis.com/auth/drive.file",
"https://www.googleapis.com/auth/userinfo.email",
"https://www.googleapis.com/auth/userinfo.profile"
]
result = client.execute!(
:api_method => 'drive.files.get',
:version => 'v2',
:parameters => { 'fileId' => params[:file_id] })
これを試したtest@google.com
アカウントでは、結果にファイルのメタデータが返され、ファイルをダウンロードできます。すべて桃色。
別のGoogleアカウントを使用すると問題が発生します。PickerでファイルにアクセスできますがfileId
、上記を使用してリクエストがサーバーに送信されると、ファイルが存在しないという404エラーが発生し続けます。また、googleが提供するOAuth 2.0 Playgroundを使用してファイルのメタデータにアクセスしようとしましたが、奇妙なことに、それでもそのエラーが発生しますが、test@google.com
アカウントを使用すると同じ404エラーが発生します。
私が本当に考えることができるのは、Googleドライブのすべての詳細を含むバージョンのアプリを一度送信し、Chromeウェブストアからアプリをインストールしたことだけです。ドライブ対応アプリとしてすべての人に表示されていることに気付いた後、すぐに削除し、manifest.jsonファイルを通常の非ドライブ対応状態に戻しました。正しく動作させるには、Chromeウェブストアからアプリをインストールする必要があることを読みましたが、そうではないことも読みました。インストールしたChromeウェブストアアプリはGoogleのクラウドのどこかに保存されているので、特定のアカウントにインストールされたことがわかりますか?または、ウェブストアアプリはローカルにインストールされたばかりですか?私は困惑している。
ここで何が欠けていますか?私は本当に長い間APIにこれほどイライラしていませんでした。助けてください!