Google が提供するサンプル コードを使用して、OAuth 経由で認証する Google API と対話する Python プログラムがあります。
# Perform OAuth 2.0 authorization.
flow = oauth2client.client.flow_from_clientsecrets(
parameters[self.PARAM_SECRETS], scope=self.GCE_SCOPE)
storage = oauth2client.file.Storage(LocalState.get_oauth2_storage_location(
parameters[self.PARAM_KEYNAME]))
credentials = storage.get()
if credentials is None or credentials.invalid:
credentials = oauth2client.tools.run(flow, storage)
# Build the service
return apiclient.discovery.build('compute', self.API_VERSION), credentials
ただし、これを実行すると、ブラウザーが強制的に開かれ、認証のためにボタンをクリックするようにユーザーに求められます。これにより、プログラムがローカル Web サーバーのないマシンで実行される場合に問題が発生します。この質問を見たことがあります。これは、 を使用して問題を解決できることを示しているようですが、引数処理--noauth_local_webserver
に使用するようにプログラムを書き直す必要がgflags
あり、既存のコードは既に を使用していますargparse
。
アプリケーション全体を書き直さなくても、ブラウザを強制的に開かずにユーザーを認証する方法はありますgflags
か?