Android Accountmanager Verwenden für gdata zu bekommen authtoken
-
25-09-2019 - |
Frage
Also ich sync versuche docs zu Google, ohne dass der Benutzer für seine Anmeldeinformationen fragen. Ich benutze diesen Code ein Auth-Token zu erhalten:
AccountManager mgr = AccountManager.get(activity);
authToken = mgr.blockingGetAuthToken(account, DocsService.DOCS_SERVICE, true);
Gibt eine Auth-Token, das Aussehen gut formatiert. Also auf meinem DocsService I run:
service.setAuthSubToken(authToken);
Allerdings, wenn ich versuche, die API zu verwenden, bekomme ich nur ein AuthenticationException. Irgendwelche Ideen auf, wie man diesen Fehler nähern?
bearbeiten. Ich mache die USE_CREDENTIALS Berechtigung
Lösung
Das Problem ist, dass das zurückgegebene Token ist ein Clientlogin-Token, kein AuthSub Token. Ein noch größeres Problem ist, dass die GData-Java-Client-Bibliothek nicht offiziell Android unterstützen. Wir haben vor kurzem eine Notiz auf der Homepage der GData-Java-Client-Bibliothek hinzugefügt, dass für Android empfehlen wir Kalender-v2-Atom-android-Probe und Doc-V3-Atom-Probe-oauth
Disclosure:. Ich bin Eigentümer sowohl der GData-Java-Client-Bibliothek und Google API-Client-Bibliothek für Java-Projekte
Andere Tipps
Sie mögen vielleicht auch einen Blick auf Yaniv Google I / O 2011 Session Dia / Video-Referenz nehmen, wie der GData-APIs auf Android zugreifen zu können.
Wie Yaniv erklärt, Gdata Lib funktioniert nicht in Android. Ich verschwendete mehrere Stunden ohne Ergebnis. Es sieht ziemlich seltsam, sein Google-Produkt und noch nicht in ihrer eigenen Plattform unterstützt (Android).
Auf jeden Fall habe ich eine Client-Bibliothek entwickelt, die auf Android arbeitet. Ich leite das Projekt auf Google Code- http://code.google.com/p/google-spreadsheet-lib- android /
Sie können versuchen.