Je reçois cette erreur en essayant d'exécuter mon application ...
The redirect URI in the request: http://localhost:8080/oauth2callback did not match a registered redirect URI
Dans la console Google API, j'ai enregistré mes URL de redirection
Redirect URIs: http://localhost:8080/
Et dans le fichier client_secrets.json, j'utilise également la même chose que l'URL de redirection . Je suis ce tutoriel https://developers.google.com/bigquery/articles/dashboard#. addoauth2
Modifier:
Je viens d'apporter des modifications au code existant
Maintenant le
redirect URIs in API console is http://localhost:8080/oauth2callback
Et voici mon 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
Maintenant, il n’affiche aucune erreur mais affiche une page vierge.
Voici mon 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 __== '__main__':
main()
Donc, selon main.py, si tout va bien, il faut imprimer Hello Dashboard mais ce n’est pas le cas.
Vous devrez en fait ajouter les éléments suivants à vos URI de redirection:
http://localhost:8080/oauth2callback
De plus, vous devrez peut-être ajouter un /
final si ce qui précède ne correspond pas:
http://localhost:8080/oauth2callback/
en utilisant google openId j'ai configuré cette
URL de redirection: http://domain.com/authenticate/google
sur https://code.google.com/apis/console , si vous devez créer une application si vous n'en avez pas, notez que l'adresse doit correspondre entièrement à l'URL.
on dirait que Google essaie de faire correspondre l’URL à la cause sensible à la casse lorsque je l’ai essayée avec/Authorize et/authorize , il m’a donné redirect_uri_mismatch
erreur pour le premier mais a fonctionné pour le dernier
quelqu'un essaie de me faire savoir si je me trompe
Dans la classe principale des fonctions main.py, ajoutez (decorator.callback_path, decorator.callback_handler()),
et supprimez
- url: /oauth2callback
script: oauth2client/appengine.py
de app.yaml.
PS: Vous pourriez avoir DownloadError si vous avez un filtre de configuration proxy/webcontent-filter. Si vous désactivez ces configurations ou si vous le déployez sur Google Server, cela fonctionnera parfaitement.
Dans le fichier main.py,
dans la partie où vous créez une application wsgi
sous application = webapp.wsgiapplication(
ajouter un gestionnaire
(decorator.callback_path,decorator.callback_handler()),