アプリケーションを実行しようとすると、このエラーが発生します...
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を印刷する必要がありますが、そうではありません。
実際には、リダイレクトURIに以下を追加する必要があります。
http://localhost:8080/oauth2callback
また、上記が一致しない場合は、末尾に/
を追加する必要がある場合があります。
http://localhost:8080/oauth2callback/
googleopenIdを使用してこれを構成しました
URIのリダイレクト: http://domain.com/authenticate/google
on https://code.google.com/apis/console 、アプリがない場合にアプリを作成する必要がある場合は、URLと完全に一致する必要があることに注意してください
/ Authorizeと/ authorizeで試したところ、グーグルがURLを大文字と小文字を区別する原因と一致させようとしているようですが、redirect_uri_mismatch
最初のものではエラーが発生しましたが、後者では機能しました
誰かが私が間違っているかどうか私に知らせようとします
Main.py関数のメインクラスで(decorator.callback_path, decorator.callback_handler()),
を追加して削除します
- url: /oauth2callback
script: oauth2client/appengine.py
app.yamlから。
PS:プロキシ設定/ウェブコンテンツフィルタがある場合、DownloadErrorが発生する可能性があります。これらの構成を無効にするか、Googleサーバーにデプロイすると、問題なく機能します。
Main.pyファイルで、
wsgiアプリケーションを作成する部分で
下 application = webapp.wsgiapplication(
ハンドラーを追加します
(decorator.callback_path,decorator.callback_handler()),