是否可以使用Android OAuth2
获取用于Google API的AccountManager
令牌?我所知道的唯一另一种方法是拥有一个webView
并让用户登录以获取OAuth2
令牌,但这似乎是很多人想要的很多工作如果我可以使用AccountManager
获得它会更好。有这样的功能吗?
答案 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令牌(除非它过期),然后一遍又一遍地使用它。