10 Stimmen

Lästige ungültige Anmeldeinformationen mit oauth 2.0 google + api

Ich versuche, oauth 2.0 für die Google+-Api auf meiner Website zu verwenden, und ich erhalte immer wieder diese Meldung:

{
    "error": {
        "errors": [{
            "domain": "global",
            "reason": "authError",
            "message": "Invalid Credentials",
            "locationType": "header",
            "location": "Authorization"
        }],
        "code": 401,
        "message": "Invalid Credentials"
    }
}

Die Sache ist die, dass ich nicht weiß, warum das passiert. Ich habe ein gültiges Zugriffstoken von Google, aber Google sagt, dass es ungültig ist. Ich weiß, dass das Token nicht abgelaufen ist, weil die json-Daten innerhalb von 10 Sekunden nach Erhalt des Zugriffstokens von Google angefordert werden. Hier ist der Prozess, den ich verwende:

  1. Benutzer zur Autorisierung der Anfrage auffordern.
  2. Ruft den Anfragecode von Google ab.
  3. Verwendet cUrl um das Zugriffs-Token mit dem Anfragecode von Google anzufordern.
  4. Setzt den Zugangscode in eine php-Sitzung ein.
  5. leitet zurück zur Hauptseite.
  6. Die Hauptseite erkennt, dass die Sitzungsvariable gesetzt ist und zeigt den Anmeldelink nicht an.
  7. Php auf der Hauptseite verwendet readFile um die json-Antwort von Google zu erhalten.
  8. Google gibt ungültige Anmeldedaten zurück.

Hier ist ein Beispiel für eine von php generierte Uri, die in readFile eingefügt wird:

https://www.googleapis.com/plus/v1/people/me?prettyprint=true&access_token=ya29.AHES6ZQRGovDa5FHsojU3qCM1DEnYmJPywz1muUE4CWGH5n70OcAkw

Hilfe, bitte?

0voto

Aminah Nuraini Punkte 15960

Ich denke, die me API ist kaputt. Das Problem ist verschwunden, wenn ich versuche, einen URI mit einer echten Benutzer-ID anzufordern. Ich meine wie folgt: https://www.googleapis.com/plus/v1/people/108189587050871927619?key={your_api_key}

0voto

Sỹ Phạm Punkte 531

Löschen Sie Ihre token.json Datei, und versuchen Sie die Anfrage erneut.

-1voto

Paulo A. Costa Punkte 164

Das Problem für mich war der Header "Authorization" bei GET/POST-Anfragen:

Die Google-Dokumentation sagt: Autorisierung: /* OAuth 2.0-Token hier */

Aber das ist richtig: Authorization: OAuth /* OAuth 2.0-Token hier */

Ja! Fügen Sie "OATH " vor Ihrem Token-Schlüssel ein!

Wenn Sie cURL (PHP) verwenden, benutzen Sie:

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: OAuth '.$_SESSION['access_token'], 'Content-Type: application/json'));

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X