Подключение к GMAIL через IMAP с использованием OAuth и токена учетной записи Google, предоставляемого Android AccountManager - PullRequest
1 голос
/ 15 марта 2011

Я хочу получить доступ к GMAIL через IMAP с Android, используя OAuth. Как показано здесь: http://code.google.com/apis/gmail/oauth/protocol.html#imap

Я попытался использовать токен авторизации, возвращенный AccountManager, в качестве параметра AUTHENTICATE, но мне не удалось пройти аутентификацию.

Я использую этот код для получения токена:

AccountManager accountManager = AccountManager.get(this);
Account[] accounts = accountManager.getAccountsByType("com.google");

AccountManagerFuture<Bundle> accountManagerFuture = accountManager.getAuthToken(accounts[0], "android", null, (Activity)this, null, null); 
Bundle authTokenBundle = accountManagerFuture.getResult();
String authToken = authTokenBundle.get(AccountManager.KEY_AUTHTOKEN).toString();

И после подключения IMAP я выполняю эту команду:

"AUTHENTICATE XOAUTH " + authToken

И я получаю неверный ответ аргумента.

Что я делаю не так? Действительно ли существует связь между токеном OAuth и токеном учетной записи? Если нет, как я могу получить токен XOAUTH из токена учетной записи.

Спасибо.

1 Ответ

2 голосов
/ 24 марта 2011

Вы уверены, что при вводе authTokenType in getAuthToken() вы должны использовать "android", а не "mail"? В качестве альтернативы вы можете использовать «ах», которого нет в списке, но, похоже, запрашивает доступ ко всему.

http://code.google.com/apis/gdata/faq.html#clientlogin

Вы также можете попробовать http://code.google.com/p/google-api-java-client/, поскольку он поддерживает тип аутентификации Android AccountManager.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...