1

我想使用 OAuth 从 android 通过 IMAP 访问 GMAIL。如此处所示: 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 令牌和 Account 令牌之间真的有关系吗?如果没有,我如何从帐户令牌中获取 XOAUTH 令牌。

谢谢。

4

1 回答 1

2

您确定在提供authTokenTypein时应该使用“android”而不是“mail”getAuthToken()吗?或者,您可以使用未列出但似乎要求访问所有内容的“啊”。

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

您可能还想尝试http://code.google.com/p/google-api-java-client/因为它支持 android AccountManager 身份验证类型。

于 2011-03-24T10:29:26.410 回答