使用android AccountManager获取OAuth2令牌?

时间:2012-06-16 05:55:29

标签: java android google-api oauth-2.0 accountmanager

是否可以使用Android OAuth2获取用于Google API的AccountManager令牌?我所知道的唯一另一种方法是拥有一个webView并让用户登录以获取OAuth2令牌,但这似乎是很多人想要的很多工作如果我可以使用AccountManager获得它会更好。有这样的功能吗?

1 个答案:

答案 0 :(得分:1)

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

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

使用WebView获取OAuth2令牌的方法是执行此操作的正确方法。

Account存储OAuth2令牌后,只要您想使用它来进行查询,就可以从AccountManager检索它。因此,您只需要生成一次OAuth2令牌(除非它过期),然后一遍又一遍地使用它。