2012-06-16 58 views
2

是否可以使用android AccountManager获取用于Google API的OAuth2令牌?我唯一知道的其他方法是使用webView并让用户登录以获取OAuth2标记,但对于许多人想要做的事情似乎需要很多工作,所以如果我只能获得它使用AccountManager会好得多。有没有这样的功能?使用android AccountManager获取OAuth2令牌?

回答

1

AccountManager根本不用于生成令牌 - 它仅用于存储与Account相关的凭证。这些类不是特定于Google服务器帐户的 - 您可以将它们用于任何类型的帐户。例如,我使用它们来存储用于Facebook,Twitter等的OAuth2令牌。

您需要使用Google API生成OAuth2令牌,然后使用AccountManager将其存储在Account中。您需要使用Google API,因为部分OAuth2令牌生成发生在服务器本身上 - Google将存储它发出的令牌记录以及它们相关的服务器帐户。如果您没有拨打Google API来生成令牌,Google就不会知道如何将令牌与Google服务器帐户相匹配。

您使用WebView获取OAuth2令牌的方法是正确的方法。

一旦您为Account存储了OAuth2令牌,只要您想用它来查询,就可以从AccountManager中检索它。所以,您只需要一次生成OAuth2令牌(除非它过期),然后您一直反复使用它。

+0

Downvoter - 我很想知道你对downvote的理由,特别是考虑到我知道这是真实的,因为我在很多自己的Android应用中使用它。照顾开导我? – wattostudios

+0

我没有让你失望,但是在'manager.getAuthToken(账号,“管理你的任务”,...)'方面,应该没有先调用Google API。每个API都有一个不同的字符串,可以用于第二个参数。 – falcojr

相关问题