Google Plus für Android: Ungültige Anmeldeinformationen

8

Ich verwende den folgenden Code, um nach dem Herstellen einer Verbindung zu Google+ ein Access Token zu erhalten, um Profilinformationen und E-Mail zu erhalten:

%Vor%

Dieses Access Token speichere ich nicht und versuche es erneut zu verwenden. Stattdessen frage ich für ein Access-Token jeden Mal einen neuen (anderen) Token erwartet, so dass ich nicht brauchen, um zu überprüfen, ob sein abgelaufene etc ..

Aber ich bekomme jedesmal den gleichen Access Token, wenn ich danach frage. Ich habe die App deinstalliert, die Daten von Google+ App gelöscht und bekomme immer noch den gleichen Access Token.

Das eigentliche Problem ist, dass die Verwendung dieses Access Tokens einen Fehler 401 - "message": "Invalid Credentials"

ergibt %Vor%

Dies ist eine Antwort auf den Browser.

Auf einem Gerät bekomme ich das in Logcat:

%Vor%

Zeile 269:

%Vor%

Vollständiger Code:

%Vor%

BEARBEITEN:

Dies ist definitiv, weil das Access Token abgelaufen ist. Was erwartet wurde, aber ich dachte, ich werde jedes Mal einen neuen Access Token bekommen, wenn ich anrufe.

Aber wie gesagt hier :

  

Wenn das Android-Gerät bereits einen Authentifizierungs-Token besitzt (für den jeweiligen   GData-Dienst, auf den Sie zugreifen möchten, wird Ihnen zurückgegeben

Also muss ich das tun:

%Vor%

wie die docs sagen

Aber wie kann ich überprüfen, ob das Access Token abgelaufen oder ungültig ist?

Durch das Abfangen der Ausnahme - Ist die einzige Lösung?

Eigentlich ist die Ausnahme java.io.FileNotFoundException , was keinen Sinn ergibt.

    
Archie.bpgc 05.03.2013, 05:35
quelle

2 Antworten

4

Abdeckung der Basen hier: Haben Sie href="https://code.google.com/apis/console/"> registrieren und eine OAuth 2.0-Client-ID erstellen für Ihre Android-App, indem Sie den Paketnamen Ihrer App und den SHA-1-Fingerabdruck Ihres Zertifikats (Test oder Prod) angeben?

Oft ist die 401 ungültige Anmeldeinformationen Nachricht an die APIs-Konsole Projekt aufgrund entweder nicht konfiguriert ist, oder eine der Einstellungen ungültig.

Die Schritte, die Sie speziell für das Google+ SDK durch den Einrichtungsvorgang durchführen können, finden Sie hier: Ссылка

Bearbeiten

Der PlusClient kann deine Tokens automatisch für dich behandeln. Ich würde vorschlagen, die Methoden zu verwenden, die PlusClient bietet, und dem Client zu erlauben, die Tokens zu verwalten, anstatt es manuell zu tun. Wenn Sie E-Mail- oder Profildaten über PlusClient , PlusClient.loadPerson() und email PlusClient.getAccountName() benötigen, finden Sie weitere Details unter Ссылка

    
BrettJ 05.03.2013 18:51
quelle
0

Ich hatte das ähnliche Problem. Um das Problem mit dem Ablaufdatum des Zugriffstokens zu lösen, dekodiere ich das Token auf der Clientseite und überprüfe das "exp" -Feld in der Token-Nutzlast. Auf diese Weise kann ich Token Ablauf vor dem Senden an den Server erkennen. Weitere Details finden Sie auf diesem Blogpost

    
bsvtag 11.06.2013 12:10
quelle