サードパーティのソースからデータを取得し、サブセットを選択して CSV ファイルに書き込み、それを Google ドライブにアップロードしてスプレッドシートに変換する Python アプリケーションがあります。これを cron ジョブとして実行したいのですが、現在、SDK ではブラウザと対話して OAuth 資格情報を取得するために人間が必要です。
Drive SDK のドキュメントを検索しましたが、役立つ情報が見つかりませんでした。また、mechanize ライブラリを使用して OAuth プロセスを自動化しようとしても失敗しました。私は何かが欠けていると確信しています。Drive API が人間の介入を必要とするなんて信じられません。提案?
https://developers.google.com/accounts/docs/OAuth2WebServer#overviewを参照しましたが、これが私が試したものです。
flow = OAuth2WebServerFlow(settings.CLIENT_ID, settings.CLIENT_SECRET
setings.OAUTH_SCOPE,settings.REDIRECT_URI)
authorize_url = flow.step1_get_authorize_url()
リクエスト URL を作成します。
https://accounts.google.com/o/oauth2/auth?
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&
redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&
response_type=code&
client_id=999637210521.apps.googleusercontent.com&
access_type=offline
次に、発行する requests ライブラリを使用します。
r = req.get(authorize_url)
ただし、応答本文はコードのない HTML ドキュメントです。