[google-api] invalid_grant versucht, oAuth-Token von Google zu erhalten



Answers

Ich stieß auf dasselbe Problem, obwohl ich den "offline" access_type in meiner Anfrage entsprechend der Antwort von bonkydog spezifizierte. Lange Rede kurzer Sinn Ich fand, dass die hier beschriebene Lösung für mich funktionierte:

https://groups.google.com/forum/#!topic/google-analytics-data-export-api/4uNaJtquxCs

Wenn Sie in Ihrer Google API-Konsole einen OAuth2-Client hinzufügen, erhalten Sie von Google eine "Client-ID" und eine "E-Mail-Adresse" (vorausgesetzt, Sie wählen "webapp" als Clienttyp aus). Und trotz der irreführenden Namenskonventionen von Google erwarten sie, dass Sie die "E-Mail-Adresse" als Wert des Parameters client_id , wenn Sie auf ihre OAuth2-APIs zugreifen.

Dies gilt, wenn Sie beide URLs aufrufen:

Beachten Sie, dass der Aufruf der ersten URL erfolgreich ist, wenn Sie ihn mit Ihrer "Client-ID" anstelle Ihrer "E-Mail-Adresse" aufrufen. Die Verwendung des von dieser Anforderung zurückgegebenen Codes funktioniert jedoch nicht, wenn versucht wird, ein Bearer-Token von der zweiten URL abzurufen. Stattdessen erhalten Sie eine 'Error 400' und eine 'invalid_grant' Nachricht.

Question

Ich invalid_grant immer einen invalid_grant Fehler beim Versuch, ein oAuth-Token von Google zu erhalten, um eine Verbindung zu ihren Kontakten herzustellen. Alle Informationen sind korrekt und ich habe es dreifach überprüft.

Weiß jemand, was dieses Problem verursachen könnte? Ich habe versucht, eine andere Client-ID für es einzurichten, aber ich bekomme das gleiche Ergebnis, ich habe versucht, viele verschiedene Möglichkeiten, einschließlich der Kraft Authentifizierung, aber immer noch das gleiche Ergebnis zu verbinden.




Ich stieß auf das gleiche Problem. Für mich habe ich dies behoben, indem ich E-Mail-Adresse (die Zeichenfolge, die mit ... @ developer.gserviceaccount.com endet) anstelle von Client-ID für client_id-Parameterwert verwendet. Die Benennung von Google ist hier verwirrend.




Mein Problem war, dass ich diese URL verwendet habe:

https://accounts.google.com/o/oauth2/token

Wann hätte ich diese URL verwenden sollen:

https://www.googleapis.com/oauth2/v4/token

Dies war das Testen eines Dienstkontos, das offline auf die Speicher-Engine zugreifen wollte.




Es gibt zwei Hauptgründe für invalid_grant Fehler invalid_grant , den Sie vor der POST-Anforderung für Refresh Token und Access Token invalid_grant müssen.

  1. Anforderungsheader muss "Inhaltstyp: application / x-www-form-urlencoded" enthalten
  2. Ihre Anfrage-Payload sollte URL-codierte Formulardaten sein, nicht als JSON-Objekt senden.

invalid_grant definiert invalid_grant als: Die angegebene Autorisierungsgewährung (z. B. Autorisierungscode, Ressourceneigneranmeldeinformationen) oder Aktualisierungstoken ist ungültig, abgelaufen, widerrufen, stimmt nicht mit dem in der Autorisierungsanforderung verwendeten Umleitungs-URI überein oder wurde an einen anderen Client ausgegeben .

Ich habe einen weiteren guten Artikel gefunden, here finden Sie viele weitere Gründe für diesen Fehler.

here




Versuchen Sie, Ihre URL zu ändern

https://www.googleapis.com/oauth2/v4/token



Das ist eine dumme Antwort, aber das Problem für mich war, dass ich nicht erkannte, dass ich bereits einen aktiven oAuth-Token für meinen Google-Nutzer erhalten hatte, den ich nicht speichern konnte. Die Lösung besteht in diesem Fall darin, zur API-Konsole zu gehen und das Client-Geheimnis zurückzusetzen.

Zu diesem Zweck gibt es zahlreiche andere Antworten zu SO, zum Beispiel Reset Client Secret OAuth2 - Müssen Clients den Zugriff wieder gewähren?




auf dieser Website console.developers.google.com

Diese Konsole Board wählen Sie Ihr Projekt geben Sie die Eide URL. Die OAUTH Callback URL wird umgeleitet, wenn der OAUTH erfolgreich ist






Related



Tags

google-api