web-dev-qa-db-ja.com

Google Drive API、Oauthおよびサービスアカウント

Google Drive API、サービスアカウント、認証に問題があります。私はたくさん読んでいますが、これを解決する方法がわかりません。

コンテキスト:ドライブアカウント(約35 GB)にいくつかのファイルがあり、ユーザーがログインして、ドライブから選択したフォルダー/ファイルをいくつか表示し、必要に応じてそれらをダウンロードできる単純なWebアプリがあります。私のドライブアカウントに直接アクセスできるのは私のサーバーだけです(またはそうする必要があります)。ユーザーはWebアプリ/サーバーを通じて自分の作業を行います。

いくつか検索したところ、 server-to-server Authorization docs が私の目的に最適であることがわかりましたが、ご覧のように、サービスアカウントは同じドライブスペースを共有していません。それらには独自のドライブスペースがあり、アップグレードできません。この(奇妙な)制限があるため、35 GBを超えており、すべてを「共有」する必要があるため、サービスアカウントを使用できません。

その他の方法:「標準」を使用OAuthアクセストークンを取得してからDrive APIを呼び出すために使用するが、アクセストークンには有効期限があり、手動で更新できない毎回。

それで、最初の質問:サービスアカウントの割り当てを増やす方法はありますか?そうでない場合、サービスアカウントのように機能する「通常の」アカウント(所有者)を使用する方法はありますか?

2番目の(ダミー)質問:私は creating new OAuth credentials に関するドキュメントを読み、最後にいくつかのサンプルコードと「client-secret」JSONを取得します。例ですが、そのJSONファイルの役割が理解できませんでした:とにかくログインして許可を与える必要があります。なぜ必要なのですか?

3番目の(十分にダミーの)質問:OAuthが唯一の解決策である場合、毎回手動で実行せずにアクセストークンを取得/更新する方法はありますか?OAuth docsと「ユーザー対話/確認」は認証フローの基本的なものの1つなので、可能ではないと思います。

17
user6208310

ドライブアカウントのフォルダーをサービスアカウントと共有します。
サービスアカウントのアドレスは[email protected]のようになります。
その後、サービスアカウントはドライブアカウントの共有フォルダを表示できます。
つまり、35GBのサービスアカウントがあります。

39
drinkmystery