Ärgerlich ungültige Anmeldeinformationen mit oauth 2.0-google + api
Ich versuche für die Verwendung von oauth 2.0 für die google + - api auf meiner Seite und ich erhalte:
{
"error": {
"errors": [{
"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization"
}],
"code": 401,
"message": "Invalid Credentials"
}
}
Die Sache ist die, ich weiß nicht, warum dies geschieht. Ich habe einen gültigen access-token von google, aber google sagt es ist ungültig. Ich weiß, dass das token nicht abgelaufen ist, weil die json-Daten anfordern von google innerhalb von 10 Sekunden bekommen Sie die access token. Hier ist der Prozess, den ich verwende:
- User bekommen auf die Anfrage autorisieren.
- Bekommt request-code von google.
- Verwendet
cUrl
auf Anfrage access token mit dem request-code von google. - Stellt der access-code in einer php-session.
- leitet wieder auf die Hauptseite.
- Haupt-Seite erkennt die session-variable gesetzt ist und nicht die Anzeige login-link.
- Php auf der main-Seite verwendet
readFile
um die json-Antwort von google. - Google gibt Ungültiger Anmeldeinformationen.
hier ist eine Beispiel-uri generiert per php eingefügt wird, in readFile:
Bitte helfen?
- Wahrscheinlich brauchen werden, um noch mehr posten-code zu erhalten nützliches feedback. Wenn Sie 100% sicher, dass Ihr token gültig ist, würde ich anfangen, durch die Fokussierung auf den Teil des Codes, wo Sie die übermittlung der Anmeldedaten. Vielleicht ist Ihr token ist nicht coming out gleich wie es geht, und Sie sind ungültig, selbst...?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie versucht, eines der Google-API-clients? Es gibt starter-Anwendungen, die Sie verwenden können, um den ball ins Rollen.
https://developers.google.com/+/downloads
Sollten Sie nicht teilen unverändert access-token - jemand kann es nutzen, um sich für Sie auszugeben (wirklich, für wen Sie erteilt wurde).
Ist es auch besser, übergeben Sie den Auth-token als header wie:
Nicht sicher, ob das ist wichtig, aber deine Fehlermeldung scheint darauf hinzudeuten, dass ein auth-Fehler im header, so dass Sie möglicherweise kann einen Authorization-header, die nicht mit dem übereinstimmt, das Sie brauchen.
Hier ist eine Lösung mit PHP ist pecl oauth Erweiterung. Das sign wird der Antrag, so, wie Sie es definiert. In diesem Fall in einer config-Datei json-Objekt, das importiert wurde und das Skript.
Ich hatte dieses problem vor, aber mit twitter.
Für OAuth eigentlich kommunizieren wir mit der twitter-zweimal, zuerst zu erwerben, Anfrage-token, der zweite zur Autorisierung senden der ersten token bereits unterzeichnet.
Vielleicht haben Sie nur überwinden, die 1. ein.
Habe ich immer die gleichen 401 "Ungültige Anmeldeinformationen" Fehler für ein paar Stunden. Als ich bemerkte, dass ich meine gespeicherten access_token in der Datenbank in einem VARCHAR(50) Feld. Er Schnitt ein Teil der access_token. Ich erhöhte die Spalte Länge. BEHOBEN.
Überprüfen Sie die Länge des Feldes in der Datenbank, wo Sie speichern Ihre access_token und auch Ihre refresh_token!
Ich denke, die
me
API ist gebrochen. Das problem ist Weg, wenn ich versuche, eine Anfrage-URI mit einem realen Benutzer-ID. Ich meine dies:https://www.googleapis.com/plus/v1/people/108189587050871927619?key={your_api_key}
Das problem war bei mir der header "Authorization" auf GET/POST-Anfrage:
Google Dokumentation sagt: Autorisierung: /* OAuth 2.0-token hier */
Aber die richtige ist: Authorization: OAuth /* OAuth 2.0-token hier */
Ja! include "EID" vor dem token-Schlüssel!
Wenn Sie mit cURL (PHP) verwenden: