Использование Android AccountManager для получения авторизации для gdata - PullRequest
3 голосов
/ 27 сентября 2010

Итак, я пытаюсь синхронизировать документы Google, не запрашивая у пользователя его учетные данные. Я использую этот код для получения токена авторизации:

AccountManager mgr = AccountManager.get(activity);
authToken = mgr.blockingGetAuthToken(account, DocsService.DOCS_SERVICE, true);

Возвращает токен, который выглядит хорошо отформатированным. Итак, на моем DocsService я запускаю:

service.setAuthSubToken(authToken);

Однако, когда я пытаюсь использовать API, я просто получаю исключение AuthenticationException. Есть идеи как подойти к этой ошибке?

edit: у меня есть разрешение USE_CREDENTIALS.

Ответы [ 3 ]

6 голосов
/ 20 октября 2010

Проблема в том, что возвращаемый токен является токеном ClientLogin, а не токеном AuthSub. Еще большая проблема заключается в том, что клиентская библиотека GData Java официально не поддерживает Android. Недавно мы добавили заметку на домашней странице клиентской библиотеки GData Java, в которой для Android мы рекомендуем Клиентская библиотека Google API для Java .

В качестве примера для начала работы с клиентской библиотекой API Google для Java будет полезно два примера: calendar-v2-atom-android-sample и docs-v3-atom- OAuth-образец

Раскрытие информации: я являюсь владельцем как клиентской библиотеки GData Java, так и клиентской библиотеки Google API для Java.

2 голосов
/ 19 марта 2012

Возможно, вы также захотите взглянуть на слайды / видео сеанса Google I / O 2011 от Yaniv, чтобы узнать, как получить доступ к API GData на Android.

http://www.google.com/events/io/2011/sessions/best-practices-for-accessing-google-apis-on-android.html

0 голосов
/ 15 декабря 2010

Как объяснил Янив, Gdata Lib не работает в Android.Я потратил несколько часов без результата.Это выглядит довольно странно, продукт Google и до сих пор не поддерживается на собственной платформе (Android).

В любом случае я разработал клиентскую библиотеку, которая работает на Android.Я управляю проектом в Google Code - http://code.google.com/p/google-spreadsheet-lib-android/

Вы можете попробовать.

...