GoogleLoginService LoginFail

1

Произошел ли у кого-либо отказ службы GoogleLoginService при аутентификации для использования службы google (календарь в моем случае) через AccountManager? Я получил токен аутентификации, используя...

AccountManager mgr = AccountManager.get(this); 
Account[] accts = mgr.getAccountsByType("com.google"); 
Account acct = accts[0];
AccountManagerFuture<Bundle> accountManagerFuture = mgr.getAuthToken(acct, "calendar",   null, this, null, null);

Bundle authTokenBundle = null;
try {authTokenBundle = accountManagerFuture.getResult();} 
    catch (OperationCanceledException e) {e.printStackTrace();} 
    catch (AuthenticatorException e) {e.printStackTrace();} 
    catch (IOException e) {e.printStackTrace();}

authtoken = authTokenBundle.get(AccountManager.KEY_AUTHTOKEN).toString();

После получения моего токена аутентификации я создал службу календаря и попытался ее аутентифицировать...

CalendarService myService = new CalendarService("UserCalendar");
myService.setAuthSubToken(authtoken);

Когда я использую это как на телефоне, так и на эмуляторе, он, как представляется, работает как ожидается... он вызывает экран, на котором Google просит пользователя разрешить или запретить доступ к моему приложению. Однако, когда я нажимаю кнопку "Разрешить", он говорит, что пароль учетной записи google неверен.

Теперь я пробовал это с несколькими учетными записями google (оба из которых работают, когда я использую их вручную для входа в систему), и он по-прежнему дает тот же результат. Любые идеи по поводу того, почему я могу получить это? Отладка не является чрезвычайно полезной... все, что я получаю, это две строки, которые просто говорят мне, что это не удалось...

12-19 20:40:05.756: DEBUG/GoogleLoginService(245): onBind: Intent { act=android.accounts.AccountAuthenticator cmp=com.google.android.gsf/.loginservice.GoogleLoginService }
12-19 20:40:08.426: DEBUG/GoogleLoginService(245): LOGIN_FAIL

У кого-нибудь еще была эта проблема? Я предполагаю, что есть что-то простое, что мне не хватает, но просто не могу придумать, почему он не будет аутентифицироваться... спасибо!

Теги:

1 ответ

0

Служба календаря Google называется "cl", а не "календарь". Вместо этого используйте следующее:

mgr.getAuthToken(acct, "cl",   null, this, null, null);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню