2

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か?

4

1 に答える 1

2

現在は役に立ちませんが、クライアント ライブラリの gflags への依存関係 は 1.2 リリースで削除されています。更新されたrun() コマンドは argparseを使用するようになり、一般に、コア ライブラリ内の特定のフラグ ライブラリに依存しなくなります。残念ながら、これは今日の問題を解決しません。今月末までに 1.2 をリリースしたいと思っていますが、保証はありません。

于 2013-06-01T16:07:34.463 に答える