2017-12-12 2 views
0

Ich bin überall SO und SE auf der Suche nach der bestimmten Antwort auf diese Frage und kann nicht scheinen, die Antwort zu finden. Ich erstelle eine einfache Webanwendung, die Python Flask verwendet, um auf Google Kalender zuzugreifen und den Kalender basierend auf den Bedingungen auszufüllen. Mein Problem ist mit OAuth2 und erhalten die redirect_uris richtig. Unten ist mein Code, und jedes Mal, wenn ich versuche, meinen Code auszuführen, erhalte ich einen Fehler, dass der Weiterleitungs-URI falsch ist und die App nicht weiter geht. Die Umleitungsuri, von der es besessen zu sein scheint, ist http://localhost:8080. Ich habe versucht, diese Redirect-URI zu meiner Entwicklerkonsole hinzuzufügen, indem ich diesen URI mit einem Tailing '/ oauth2callback' (mit und ohne Tailing '/') hinzufüge. Ich habe auch versucht, einen anderen URI vollständig anzugeben, aber der Fehler hält http://localhost:8080 und scheint nie einen anderen Weiterleitungs-URI zu erkennen, obwohl er andere client_secret.json-Dateien verwendet und andere uri in flow_from_client_secrets angibt. Ich habe auch meinen Cache geleert, bevor ich das Skript jedes Mal ausgeführt habe, und auch Dinge im Inkognito-Modus von Chrome ausgeführt habe. Nichts scheint zu helfen. Ich weiß, es muss etwas Einfaches sein, und wenn jemand darauf hinweisen könnte, was es ist, wäre ich sehr dankbar!Google Kalender-API für OAuth Web-Anwendung in Python Flask

SCOPES = 'https://www.googleapis.com/auth/calendar' 
CLIENT_SECRET_FILE = 'client_secret_web.json' 
APPLICATION_NAME = 'Example Calendar Application' 
REDIRECT_URI = 'http://placeholder.com/oauth2callback' 

home_dir = os.path.expanduser('~') 
    credential_dir = os.path.join(home_dir, '.credentials') 
    if not os.path.exists(credential_dir): 
     os.makedirs(credential_dir) 
    redirect_uri="" 
    credential_path = os.path.join(credential_dir, 
            'calendar-python-quickstart.json') 

    store = Storage(credential_path) 
    credentials = store.get() 
    flow = client.flow_from_clientsecrets(self.CLIENT_SECRET_FILE, 
    self.SCOPES, prompt='consent', redirect_uri=self.REDIRECT_URI) 
    flow.user_agent = self.APPLICATION_NAME 
    if self.flags: 
     credentials = tools.run_flow(flow, store, self.flags) 
    else: # Needed only for compatibility with Python 2.6 
     credentials = tools.run(flow, store) 

     print('Storing credentials to ' + credential_path) 
    return credentials 
+0

ist es jemand, der diese Frage beantworten kann? Ich hämmere ehrlich meinen Kopf gegen die Wand und bin seit geraumer Zeit. Es ist mir immer noch nicht gelungen, eine Antwort zu finden, die funktioniert. – Jake

Antwort

0

Ich glaube, Sie haben die Datei in ~/.credentials/Kalender-Python-quickstart.json erstellt löschen, damit das Programm für die Berechtigungen wieder fragt

Verwandte Themen