Получение ошибки: redirect_uri_mismatch URI перенаправления в запросе: http://localhost: 8080/oauth2callback не соответствует зарегистрированному URI редиректа

Я получаю эту ошибку при попытке запустить мое приложение...

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

В консоли Google API я зарегистрировал свои URL-адреса перенаправления

Redirect URIs:  http://localhost:8080/

И в client_secrets.json также я использую то же самое, что и адрес перенаправления Я следую этому руководству https://developers.google.com/bigquery/articles/dashboard#addoauth2

Edit:

Я только что внес некоторые изменения в существующий код

Теперь

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, но это не

Ответ 1

Вам действительно нужно добавить следующее к вашим URI перенаправления:

http://localhost:8080/oauth2callback

Кроме того, вам может потребоваться добавить конечный /, если приведенное выше не соответствует:

http://localhost:8080/oauth2callback/

Ответ 2

с помощью google openId Я настроил этот

Перенаправление URI: http://domain.com/authenticate/google

on https://code.google.com/apis/console, если вы должны создать приложение, если у вас его нет, обратите внимание, что он должен полностью совпадать с URL

Ответ 3

В main.py функции main class добавьте (decorator.callback_path, decorator.callback_handler()), и удалите

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

из app.yaml.

PS: Вы можете получить DownloadError, если у вас есть proxy-configuration/webcontent-filter. Если вы отключите эти конфигурации или разверните их на Google Сервере, это будет работать нормально.

Ответ 4

похоже, что Google пытается сопоставить url с аргументом case-sensitve, когда я попробовал его с помощью /Authorize и /authorize, он дал мне ошибку redirect_uri_mismatch для первого один, но работал для последнего

кто-нибудь попробует и дайте мне знать, если я ошибаюсь

Ответ 5

В файле main.py

в той части, где вы создаете приложение wsgi

под application = webapp.wsgiapplication(

добавить обработчик

(decorator.callback_path,decorator.callback_handler()),