2

こんにちは、Biq Query API を使用するアプリを作成しようとしています。

アプリをローカルにロードすると、OAuth2 のすべての認証とクライアント シークレットが正常に機能しますが、コードをデプロイした後、次のエラーが発生します。

エラー: redirect_uri_mismatch リクエストの詳細

scope=https://www.googleapis.com/auth/bigquery
response_type=code
redirect_uri=https://terradata-test.appspot.com/oauth2callback
access_type=offline
state=https://terradata-test.appspot.com/
display=page
client_id=660103924069.apps.googleusercontent.com

しかし、API コンソールを見ると、リダイレクト URI https://terradata-test.appspot.com/oauth2callbackがリストにあるか、またはリダイレクト URI であることがわかります。

リダイレクト URI:

1.https://terradata-test.appspot.com/oauth2callback

2.http://terradata-test.appspot.com/oauth2callback

3.http://1.terradata-test.appspot.com/oauth2callback

4.https://code.google.com/oauthplayground

この問題を解決するために何が欠けているのかわからないのですか? API コンソールにリストされている URI でリダイレクト エラーが発生するのはなぜですか?

アプリは OAuth2 デコレーターを構築して、次のように Biq Query API にパススルーします。

CLIENT_SECRETS = os.path.join(os.path.dirname(__file__),
   'client_secrets.json')

decorator = oauth2decorator_from_clientsecrets(
    CLIENT_SECRETS,
    'https://www.googleapis.com/auth/bigquery')

http = httplib2.Http(memcache)   

bq = bqclient.BigQueryClient(http, decorator)

状況を明確にするために追加する必要があるコードはありますか? 任意の入力をいただければ幸いです。本当にありがとう!

シャン

4

2 に答える 2

2

標準の Web サーバー OAuth 2.0 フロー (認可コード) では、redirect_uri が使用される場所が 3 つあります。次の 3 つの場所すべてで同一である必要があります。

  1. URL で、ユーザーをリダイレクトして、アクセスを承認し、認証コードを取得します。
  2. API コンソールで
  3. アクセス トークンの認証コードを交換するときのサーバー間 HTTPS ポスト (+ リフレッシュ トークンの可能性あり)
于 2012-10-20T23:46:43.220 に答える