2016-03-23 17 views
2

Situationkann nicht mit Google OAuth Aktualisierungs-Token erhalten 2

ich einfach android app, wo Benutzerdaten von Google Fusion Tables mit REST api wird. Dazu habe ich OAuth 2-Autorisierung verwendet, um Access Token und Refresh Token zu erhalten. Ich habe eine Webansicht in meiner App, die sowohl den Anmeldebildschirm als auch den Zustimmungsbildschirm anzeigt. Ich plante, Zugriffstoken von der Webansicht zu erhalten und sie für weitere API-Aufrufe zu verwenden. Ich verwende retrofit, um meine http-Aufrufe auszuführen. Ich verwende folgende Abfrageparameter,

"client_id" = CLIENTID 
"client_secret" = SECRET 
"code" = 4/XXXXXXXXXX //Code got from redirect url 
"grant_type" = "authorization_code" 
"access_type" = "offline" 
"approval_prompt" = "force" 
"redirect_uri" = REDIRECT_URL 

So weit so gut. Aber wenn ich exceute Anfrage mit über Abfrageparameter schreiben, bekomme ich folgende Antwort,

{ 
    "access_token": "ya29.XXXXXXXXXXXXXX", 
    "token_type": "Bearer", 
    "expires_in": 3599, 
    "id_token": "XXXXXXXXXX" 
} 

Frage

Wo ist Aktualisierungs-Token? Ich brauche Refresh-Token, weil ich später keinen API-Aufruf über App mit Zugriffstoken durchführen konnte und ich nicht möchte, dass Benutzer jedes Mal Zugriffstoken erhalten.

Was ich

versucht haben, habe ich bereits gefolgt Anweisungen von this Post und haben versucht, die Erlaubnis von Einstellungen der Anwendung widerrufen. Ich habe auch versucht, verschiedene Google-Konten für den Fall, dass es ein Problem mit der Erlaubnis, aber immer noch kein Glück. Ich habe auch versucht, Abfrageparameter "approval_prompt" und "grant_type" zu entfernen, aber das half auch nicht.

Antwort

0

Ich bekam Antwort nach dem Suchen und Kopf für 5-6 Stunden schlagen. This Antwort hat mich gerettet! Antwort auf die Menschen für diese in Zukunft suchen,

Add „access_type“ = „offline“ Abfrage während für den Zugriff anfordert Token anstatt Austausch, das heißt in URL, die für Zustimmung bittet.

0

Anstatt grant_type=offline in der Autorisierungsanforderung anzugeben, müssen Sie access_type=offline angeben, um ein Aktualisierungstoken anzufordern.

+0

Entschuldigung, ich hatte Tippfehler beim Schreiben. Ich habe die Frage bearbeitet. Die Abfrage "access_type = offline" ist bereits vorhanden! – Dexter

Verwandte Themen