1

OOB OAuth2接続を実行するための例を試しましたが、ラップトップからは正常に機能します。

私が抱えている課題は、ブラウザを起動して、問題のドキュメントへのアプリへのアクセスを許可するかどうかを確認するように要求することです。それ以降、クレデンシャルセットをローカルファイルに保存し、引き続き正常に機能します。

私の使用例は、レポートにGoogleDocsスプレッドシートを活用したいと考えている部門が社内に多数あることです。次に、このデータをスクレイプしてすべての部門の集計レポートを作成できるプログラムをサーバー上で(cronジョブから)実行できるようにしたいと思います。

問題のすべてのドキュメントへの読み取りアクセスを許可される「レポートユーザー」を作成し、そのIDを使用してレポートプロセスを実行することを意図していました。

ラップトップで実行してから、保存されている資格情報をサーバーにコピーして使用してみました。ただし、これらの資格情報はマシンに関連付けられているようであるため、ブラウザを介した新しい検証フローが強制されます。

Googleドライブの認証フローを使用して、必要なことを実行できるようにする方法についての提案はありますか?

TIA

4

3 に答える 3

1

API コンソールから p12 ファイルを使用して GoogleCredential を作成します ([API アクセス] > [別のクライアント ID を作成] > [サービス アカウント] など)。

GoogleCredential.Builder#setServiceAccountPrivateKeyFromP12File(File)

サービス アカウントの詳細

于 2013-01-02T18:52:05.780 に答える
1

一部のユーザーにすべてのドキュメントへの読み取り専用アクセスを許可する必要はなく、Google Apps ドメイン ユーザーのすべてのドキュメントへの読み取り専用アクセスが許可されているサービス アカウントを使用することをお勧めします。

https://developers.google.com/drive/delegation

使用する:

https://www.googleapis.com/auth/drive.readonly

コントロール パネルでサービス アカウントにアクセス権を付与する OAuth スコープとして。そうすれば、サーバーが侵害された場合、アクセスを読み取り専用に制限できます。

于 2013-01-02T17:48:16.670 に答える
0

他の回答はこれよりも優れていますが、いつでも一連の資格情報を取得して、再利用できるようにファイルに保存できます。資格情報の取得は Web ブラウザーで行うことができますが、一度だけ行うことができます。その後、サーバーは資格情報を永久に使用できます (オフライン アクセスを要求して更新トークンを取得する限り)。

于 2013-01-02T19:20:37.260 に答える