11

アプリケーションを実行しようとすると、このエラーが発生します...

The redirect URI in the request: http://localhost:8080/oauth2callback did not match a registered redirect URI

グーグルAPIコンソールでリダイレクトURLを登録しました

Redirect URIs:  http://localhost:8080/

また、client_secrets.jsonでも、リダイレクトURLと同じものを使用しています。このチュートリアルに従ってい ますhttps://developers.google.com/bigquery/articles/dashboard#addoauth2

編集:

既存のコードにいくつか変更を加えました

今、

redirect URIs in API console is     http://localhost:8080/oauth2callback

そしてこれが私のapp.yamlです

application: hellomydashboard
version: 1
runtime: python
api_version: 1

handlers:
- url: /favicon\.ico
  static_files: favicon.ico
  upload: favicon\.ico

- url: /oauth2callback
  script: oauth2client/appengine.py

- url: .*
  script: main.py

エラーは表示されませんが、空白のページが表示されます。

これが私のmain.pyです

from bqclient import BigQueryClient
import httplib2
import os
from google.appengine.api import memcache
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
from oauth2client.appengine import oauth2decorator_from_clientsecrets

# Project ID for project to receive bill.
# During limited availability preview, there is no bill.
# The value should be your quoted Client ID number 
# which you previously recorded from code.google.com/apis/console

# REPLACE THIS NUMBER WITH YOUR CLIENT ID
PROJECT_ID = "My Project ID"  #i just replaced dat
DATASET = "samples"
TABLE = "natality"

# CLIENT_SECRETS, name of a file containing the OAuth 2.0
# information for this application.
CLIENT_SECRETS = os.path.join(os.path.dirname(__file__),
    'client_secrets.json')

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

bq = BigQueryClient(http, decorator)

class MainHandler(webapp.RequestHandler):
    @decorator.oauth_required
    def get(self):
        self.response.out.write("Hello Dashboard!\n")


application = webapp.WSGIApplication([
   ('/', MainHandler),
], debug=True)

def main():
   run_wsgi_app(application)

if __name__ == '__main__':
    main()

したがって、main.pyによると、すべてが正常であれば、Hello Dashboardを印刷する必要がありますが、そうではありません。

4

5 に答える 5

19

実際には、リダイレクトURIに以下を追加する必要があります。

http://localhost:8080/oauth2callback

/また、上記が一致しない場合は、末尾を追加する必要があります。

http://localhost:8080/oauth2callback/
于 2012-11-04T19:25:24.673 に答える
3

googleopenIdを使用してこれを構成しました

URIのリダイレクト:http: //domain.com/authenticate/google

https://code.google.com/apis/consoleで、アプリがない場合にアプリを作成する必要がある場合は、URLと完全に一致する必要があることに注意してください

于 2013-07-10T22:20:12.353 に答える
1

main.py関数でメインクラスの追加(decorator.callback_path, decorator.callback_handler()),と削除

- url: /oauth2callback 
    script: oauth2client/appengine.py 

app.yamlから。

PS:プロキシ構成/ウェブコンテンツフィルターがある場合、DownloadErrorが発生する可能性があります。これらの構成を無効にするか、Googleサーバーにデプロイすると、問題なく機能します。

于 2012-11-22T05:38:28.510 に答える
1

/Authorize/authorizeで試したところ、グーグルがURLを大文字と小文字を区別する原因と一致させようとしているようredirect_uri_mismatchです。最初のURLではエラーが発生しましたが、後者では機能しました。

誰かが私が間違っているかどうか私に知らせようとします

于 2013-06-19T13:27:25.363 に答える
0

main.pyファイルで、

wsgiアプリケーションを作成する部分で

application = webapp.wsgiapplication(

ハンドラーを追加します

(decorator.callback_path,decorator.callback_handler()),
于 2013-06-11T07:07:40.207 に答える