web-dev-qa-db-de.com

Google API-Bereich wurde geändert

edit: Ich habe es leicht gelöst, indem ich " https://www.googleapis.com/auth/plus.me " zu meinem Geltungsbereich hinzugefügt habe, aber ich wollte eine Diskussion zu diesem Thema beginnen und sehen, ob jemand die Erfahrung gemacht hat gleicher Fehler.

Ich habe einen Dienst, der auf GCP ausgeführt wird, einer App-Engine, die Google API verwendet. Heute morgen habe ich diese "Warnmeldung" erhalten, die einen Fehler von 500 ausgegeben hat. __ Sie hat im letzten Monat einwandfrei funktioniert und hat diesen Fehler nur heute (5 Stunden vor diesem Beitrag) ausgegeben.

Weiß jemand, warum Google beim oauth2callback einen zusätzlichen Bereich zurückgegeben hat? Jede zusätzliche Einsicht wird sehr geschätzt. Bitte lassen Sie mich wissen, ob Sie das schon einmal gesehen haben oder nicht. Ich konnte es nirgendwo finden.

Ausnahmetyp: Warnung bei/oauth2callback

Ausnahmewert: Der Bereich hat sich von .__ geändert. " https://www.googleapis.com/auth/userinfo.email " an " https://www.googleapis.com/auth/userinfo.emailhttps://www.googleapis.com/auth/plus.me ".

Diese Zeile warf den Fehler:

flow.fetch_token(
        authorization_response=authorization_response,
        code=request.session["code"])

Die zurückgegebene URL lautet https://my_website.com/oauth2callback?state=SECRET_STATE&scope=https://www.googleapis.com/auth/userinfo.email+https://www.googleapis.com/auth/plus. mir#

anstelle des üblichen https://my_website.com/oauth2callback?state=SECRET_STATE&scope=https://www.googleapis.com/auth/userinfo.email#

edit: beispielcode

import the required things

SCOPES = ['https://www.googleapis.com/auth/userinfo.email',
          'https://www.googleapis.com/auth/calendar',
          # 'https://www.googleapis.com/auth/plus.me' <-- without this, it throws the error stated above. adding it, fixes the problem. Google returns an additional scope (.../plus.me) which causes an error.
          ]

def auth(request):
    flow = google_auth_oauthlib.flow.Flow.from_client_secrets_file(
        CLIENT_SECRETS_FILE, scopes=SCOPES)
    flow.redirect_uri = website_url + '/oauth2callback'
    authorization_url, state = flow.authorization_url(
        access_type='offline', include_granted_scopes='true', 
Prompt='consent')
    request.session["state"] = state
    return redirect(authorization_url)

def oauth2callback(request):
    ...
    # request.session["code"] = code in url
    authorization_response = website_url + '/oauth2callback' + parsed.query
    flow.fetch_token(
    authorization_response=authorization_response,
    code=request.session["code"])
    ...
7
Julius Ting

Wir haben heute das gleiche Problem entdeckt. Unsere Lösung hat in den letzten Monaten problemlos funktioniert.

Wir haben das Problem gelöst, indem wir unsere ursprünglichen Bereiche "Profil-E-Mail" an https://www.googleapis.com/auth/userinfo.emailhttps://www.googleapis.com aktualisiert haben /auth/userinfo.profile und durch geringfügige Änderungen am Code.

Bei der Initiierung des Clients google_auth_oauthlib.flow haben wir zuvor die Gültigkeitsbereiche einer Liste mit nur einem Element übergeben, das eine Zeichenfolge enthielt, in der die Gültigkeitsbereiche durch Leerzeichen getrennt waren.

google_scopes = 'email profile'
self.flow = Flow.from_client_secrets_file(secret_file, scopes=[google_scopes], state=state)

Mit den aktualisierten Bereichen senden wir nun eine Liste, in der jedes Element einen eigenen Bereich hat.

google_scopes = 'https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile'    
self.flow = Flow.from_client_secrets_file(secret_file, scopes=google_scopes.split(' '), state=state)

Ich hoffe es hilft, viel Glück! 

3

Ich verwende die request_oauthlib-Erweiterung und hatte den gleichen Fehler. Ich behebe das Problem durch Hinzufügen von OAUTHLIB_RELAX_TOKEN_SCOPE: '1' zu Umgebungsvariablen. So mein app.yaml Datei ist ähnlich wie folgt:

#...
env_variables:
  OAUTHLIB_RELAX_TOKEN_SCOPE: '1'
1
ASSILI Taher

In Anbetracht des Zeitpunkts könnten Sie durch diese Änderung von Google betroffen sein: "Ab dem 18. Juli 2017 werden Google OAuth-Clients, die bestimmte sensible OAuth-Bereiche anfordern, von Google überprüft." https://developers.google.com/apps-script/guides/client-verification

0
Thomas Koch

Bei einem Fehler aus Ihrem Fehler sieht es so aus, als würden Sie einen abgeschriebenen Geltungsbereich verwenden. Siehe: https://developers.google.com/+/web/api/rest/oauth#deprecated-scopes

Ich vermute auch, dass Sie möglicherweise die Google+ Platform-Webbibliothek und möglicherweise die People: Get -Methode verwenden. Verwenden Sie stattdessen einen der folgenden Bereiche:

https://www.googleapis.com/auth/plus.login

oder

https://www.googleapis.com/auth/plus.me
0
ScottMcC