問題タブ [oauth2client]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - oauth response_type の設定をサポートする Python ライブラリ
私が使用しているサーバーは、コードを応答タイプとしてサポートしていません。フラスコ-oauth を使用しようとしましたが、応答タイプの設定をサポートしていません。トークンに変更するようにflask-oauthを設定できるかどうか疑問に思っていました。私は設定してそれをやってみました:
しかし、私はエラーが発生します
そうでない場合、oauth2 をサポートし、応答タイプを設定する Python ライブラリを知っている人はいますか。
python - gflags なしで Google アナリティクスの資格情報を取得する方法 - 代わりに run_flow() を使用しますか?
これを説明するには少し時間がかかるかもしれませんが、ご容赦ください。
私は、Google アナリティクス データを取り込む必要がある仕事のプロジェクトに取り組んでいます。私はもともとこのリンクに従ってこれを行ったので、API クライアントpip install --upgrade google-api-python-client
をインストールして のように設定した後、ステートメントclient_secrets.json
を実行するために gflags をインストールする必要がありましたrun()
。(つまりcredentials = run(FLOW, storage)
)
今、gflagsをインストールするか、より適切に使用するためのエラーメッセージが表示されましたrun_flow()
(正確なエラーメッセージはこれでした):
NotImplementedError: tools.run() を使用するには、gflags ライブラリをインストールする必要があります。gflags をインストールするか、できれば tools.run_flow() を使用するように切り替えてください。
私はもともと gflags を使用していました (数か月前) が、フレームワーク (ピラミッド) と互換性がなかったため、問題が何であるかがわかるまで削除しました。また、gflags から gflags に切り替えることが望ましい理由run_flow()
は、gflags が非推奨になったため、以前のように使用したくないためです。私が今やろうとしているのは、使用に切り替えることですrun_flow()
これに関する問題run_flow()
は、コマンド ライン引数が送信されることを想定しており、これはコマンド ライン アプリケーションではありません。役立つドキュメントをいくつか見つけましたが、関数のフラグの作成に行き詰まっていrun_flow()
ます。
コードを表示する前に、もう 1 つ説明します。
run_flow()
3 つの引数を取ります(ドキュメントはこちら)。これはフローとストレージを使用するのと同じように使用run()
しますが、フラグ オブジェクトも使用します。gflags ライブラリは、実行メソッドArgumentParser
で使用される flags オブジェクトを構築しました。oauth2client
argumentParser
オブジェクトの構築に役立つ他のいくつかのリンク:
- リンク 1: https://google-api-python-client.googlecode.com/hg/docs/epy/oauth2client.tools-module.html
- リンク 2: https://developers.google.com/compute/docs/api/python-guide
2番目のリンクは、それがどのように実行されるかを確認するのに非常に役立ちsys.argv
ます.仮想環境を実行します)。しかし、それは何か他のものを期待しているため、エラーがスローされます。これが私が立ち往生している場所です。pserve
.ini
- 送信するために構築する必要があるフラグ オブジェクトがわかりません
run_flow()
- ステートメントが正しい情報を取得するために渡す必要がある argv 引数がわかり
flags = parser.parse_args(argv[1:])
ません (正しい情報がどうあるべきかわかりません)
コード:
を呼び出すメイン関数をsys.argv
呼び出します。initialize_service
私のアプリケーションはコマンド ライン アプリケーションではなく、完全に統合されたサービスであるため、これが機能しないことはわかっていましたが、試してみる価値があると考えました。flags オブジェクトを正しく構築する方法について何か考えはありますか?
javascript - PHP 用の Google API にはクライアント シークレットが必要ですが、Javascript 用の Google API には必要ないのはなぜですか?
PHP 環境で初めて Google API を試したときに、API コンソールから取得した「クライアント シークレット」キーを使用する必要があったことはわかりません。Javascript api の例では、そのようなキーは必要ありません。キーがあれば、コードは秘密ではなくなることを理解しています。
Google がまだ PHP コードでキーを必要とする理由はありますか? JS と PHP の API に違いはありますか? PHP でしかできないことはありますか?
google-oauth - oauth2client 資格情報 refresh_token が null になる
背景
- google-api-python-client django_sampleを使用して Google API への access_token を取得しました。
- オフラインでアクセスできるように、 を追加しまし
FLOW.params['access_type'] = 'offline'
た。 - 保存されます
credentials_json = credentials.to_json()
。が含まれていrefresh_token
ます。 - 資格情報を復元しました
Credentials.new_from_json(credentials_json)
。 - この資格情報を使用して、 によるアクセスを取得しました
credentials.authorize(http)
。 - 完璧に機能しました=)
問題
- 5分ごとに同じことをしました。
- 各反復で、資格情報を保存して印刷しました。
- 1 時間 45 分後、「refresh_token」が null になりました。
- この時点で、コードは機能しなくなりました =(
私の質問
Credentials
クラスはトークンを自動的に更新しますか?- そうでない場合、どの時点で電話する必要があります
credentials.refresh(http)
か?
ありがとう!
ios - NXOAuth2Request レスポンスからデータを取得する方法
初めての iOS アプリを書いています。これには、OAuth2Client を介した API 呼び出しが含まれます。
問題は、AdvAPI getUser 関数を呼び出すときです。GET 要求は、responseHandler 内の応答データを処理する NXOAuth2Request を通じて行われ、変数 result が NSDictionary に設定されます。ただし、結果は XOAuth2Request 関数の外ではアクセスできません。結果を取得して getUser から返すにはどうすればよいですか?
ありがとう!
asp.net-mvc-5 - MVC 5 Web アプリケーションと Web API 2 アプリケーションの間でアクセス トークンを共有する方法
この例では、ユーザーが (MVC 5) Web アプリケーションにログインし、プロキシとして機能して (Web API 2) API (Basic over SSL を使用) にログインし、ベアラー/アクセス トークンを返します。私は Thinktecture.IdentityModel.Client.OAuth2Client を使用してログインを処理し、アクセス トークンを取得していますが、これはすべて正常に機能します。
他にもいくつかのことが起こりますが、Web アプリケーションがアクセス トークンをデコードして、API に設定されたクレーム (具体的には、API へのログイン後に返されるユーザー ID) にアクセスできるようにしたいと考えています。
私は多くのデモを使用しており、トークンエンドポイントを使用して拡張メソッドを使用していますが、独自のリポジトリにアクセスするためのカスタムがありUseOAuthAuthorizationServer
ます。UseOAuthBearerAuthentication
OAuthAuthorizationServerOptions.Provider
両方のアプリケーションで同じ MachineKey を使用していますが、トークンをデコードする方法が不明ですが、おそらくSecureDataFormat.Unprotect
メソッドを使用する必要があることは理解しています。
私が Web アプリケーションで行った最も近い試みは次のとおりです。
Startup.DataProtectionProvider を次のように設定します。
私のフォールバック計画は、ログイン後に興味のある情報を返す API メソッドを提供することですが、それがトークンのクレームの一部を形成するため (私が理解しているように)、過剰に見えます。
私は JWT について頭を悩ませようとしました (Thinktecture、Microsoft のソース コード、およびその他のさまざまなフォーラムを見てきました) が、それが役立つかどうかはわかりません (ただし、プレーン テキストで利用できる主張は役に立ちます)。基本認証でのサインインを許可し、アクセス トークンを含むカスタム JWT を返す例をまだ見つけていません。
とにかく、それが十分な情報であることを願っています。どんな助けでも大歓迎です...乾杯
oauth-2.0 - run_flow() のどのフラグが、非推奨になった run() をシミュレートしますか?
GMail API にアクセスするために資格情報を認証しようとしています。以前はrun()
OAuth2 のメソッドとコードを使用してこれを行っていcredentials = tools.run(flow, STORAGE, http=http)
ましたが、現在は非推奨のメソッドです。現在、このrun_flow()
方法を使用して資格情報を認証しています。
コメント行は、を使用し、 を使用run_flow()
しないコードですrun()
。
コメントアウトされたコードでエラーが表示されます: run.py: error: unrecognized arguments: AdminTests
, AdminTests は、Python に渡す引数ではありません。
解析された引数を変更するとflags = parser.parse_args(['--noauth_local_webserver'])
、エラーは発生しませんが、何も起こりません。
可能な限り厳密flag
にシミュレートするにはどれを使用する必要があり、どのように解析する必要がありますか?run()
編集:メソッドを使用しrun()
て資格情報を認証する場合、アクセスされる URL は次のとおりです:
http://localhost:8080/?code=4/myuniqueID
(例では一意の ID がありません)
django - App Engine プロジェクトに OAUTH2 を実装する
OAUTH2 機能を既存の App Engine アプリケーションに追加しようとしましたが、いくつか問題がありました。提案があれば感謝します。
私の手順は次のとおりです。 1. Google Api コンソールでクライアント ID を作成し、OAUTH フローを作成します。2. ユーザーがlogin
ページにアクセスすると、Google ログイン ページにリダイレクトされます。3. 条件に同意すると、ユーザーはアプリケーションのランディング ページにリダイレクトされます
私の質問は次のとおりです。
ユーザーがサインインしてランディング ページにリダイレクトされた後、ページを更新すると、次のエラーが表示されます。これは
flow.step2_exchange(cred)
. これを修正する方法はありますか?INFO 2014-08-21 16:39:56,437 client.py:1304] アクセス トークンの取得に失敗しました: {
「エラー」:「invalid_grant」、
"error_description": "無効なコードです。"
}
また、App Engine で Django プロジェクトを実行しているため、現在のユーザーの情報を確認するには、ページの右隅に名前を掲載したいので、どのような方法が最適ですか。良い例はありますか?
ありがとう!