Token kann nicht mit Google APIs [google-oauth-java-client-1.12.0-beta] für den Dienstkontofluss abgerufen werden

8

Ich verwende Google APIs (Version google-oauth-java-client-1.12.0-beta), um ein OAuth2-Zugriffstoken zu erhalten, habe aber "invalid_grant" zurückerhalten. Ref: Zypern

Hier ist der Code:

%Vor%

Ergebnis:

%Vor%

Was ist das Problem hier? Jeder Hinweis würde geschätzt werden.

    
dan22 07.01.2013, 00:16
quelle

1 Antwort

7

Bei der Verwendung von Dienstkonten in Google-Diensten und der Google APIs-Clientbibliothek müssen Sie die Signatur nicht selbst erstellen und das JWT-Token selbst erstellen, da es zu verwendende Dienstprogrammklassen zur einfachen Durchführung der Dienstkontenautorisierung über OAuth gibt 2.0.

Dies ist jedoch nur in der Google Drive-Dokumentation, die ausführliche Erläuterungen und Codebeispiele in mehreren Programmiersprachen enthält, nicht sehr gut dokumentiert. Du solltest lesen: Ссылка

Einige Probleme mit Ihrem Code:

  • Die ID des Dienstkontos sollte das folgende Format haben: <some-id>@developer.gserviceaccount.com (ja die E-Mail anstelle der Client ID, ich weiß, dass es seltsam ist)
  • Sie können die principal nur festlegen, wenn Sie die Google Apps-Delegierung für die Domain-Wide ausführen. Dies ist jedoch in Google Mail nicht möglich Konten natürlich nur auf Google Apps-Konten, deren Domain Ihnen von einem Administrator Zugriff gewährt wurde, also in Ihrem Fall: Legen Sie sie nicht fest.

Im Folgenden finden Sie das Codebeispiel für OAuth 2.0 mit Dienstkonten in Java.

Hinweis: Sie müssen auch die URL Shortener-Bibliothek .

%Vor%     
Nivco 10.01.2013 22:37
quelle