尝试运行我的应用程序时出现此错误...
The redirect URI in the request: http://localhost:8080/oauth2callback did not match a registered redirect URI
在谷歌API控制台中,我已经注册了我的重定向网址
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,但它不是
答案 0 :(得分:18)
您实际上需要将以下内容添加到重定向URI:
http://localhost:8080/oauth2callback
此外,如果上述内容不匹配,您可能需要附加一个尾随/
:
http://localhost:8080/oauth2callback/
答案 1 :(得分:3)
使用谷歌openId我配置了这个
重定向URI:http://domain.com/authenticate/google
在https://code.google.com/apis/console上,如果您必须创建应用,如果您没有,请注意必须完全匹配该网址
答案 2 :(得分:1)
在main.py函数主类中添加(decorator.callback_path, decorator.callback_handler()),
并删除
- url: /oauth2callback
script: oauth2client/appengine.py
来自app.yaml。
PS:如果你有一些proxy-configuration / webcontent-filter,你可能会得到DownloadError。如果您禁用这些配置或将其部署在Google服务器上,它就可以正常运行。
答案 3 :(得分:1)
似乎谷歌尝试将网址与案例敏感因素相匹配,当我尝试使用 /授权和 / authorize 时,它会给我redirect_uri_mismatch
错误第一个但是为后者工作
答案 4 :(得分:0)
在main.py文件中,
在您创建wsgi应用程序的部分
<{1>} 下的
添加处理程序
application = webapp.wsgiapplication(