Использование Android AccountManager для получения авторизации для gdata

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

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

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

service.setAuthSubToken(authToken);

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

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

Ответы на вопрос(3)

Решение Вопроса

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

Вспомним два примера, которые будут полезны для вас при начале работы с клиентской библиотекой Google API для Java:календарь-v2-атом-андроид-образец а такжедокументы-v3-атом-OAuth-образец

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

 Aram12 мар. 2012 г., 10:19
Извините, но ваши ссылки на примеры не работают. Не могли бы вы опубликовать новые ссылки?
 pgsandstrom05 нояб. 2010 г., 13:50
спасибо, я постараюсь использовать эту библиотеку вместо. Я также сделал запрос на более обширные образцы документов Google, это действительно помогло бы :)

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

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

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

 ArtOfWarfare11 сент. 2012 г., 15:16
Да, хорошо, политика Google, согласно которой все и все равны, означает, что они заканчивают тем, что стреляют себе в ногу, когда речь идет о том, чтобы один из их проектов работал с другим проектом. (IE, Google Services хорошо работают с Android. Это было бы несправедливо по отношению к iOS, Windows и Mac OS. Нет, поддержка каждой платформы должна быть одинаковой.)

Возможно, вы также захотите взглянуть на слайды / видео сеанса 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

Ваш ответ на вопрос