是否可以使用 android AccountManager
获得用于 Google API 的OAuth2
令牌? 我知道的唯一另一种方法是有一个webView
并让用户登录以获取OAuth2
令牌,但对于许多人想要做的人来说,这似乎需要做很多工作,所以如果我可以使用AccountManager
获取它会好得多。有这样的功能吗?
AccountManager
根本不用于生成令牌 - 它仅用于存储与Account
相关的凭据。这些类并非特定于 Google 服务器帐户 - 您可以将它们用于任何类型的帐户。例如,我使用它们来存储Facebook,Twitter等的OAuth2令牌。
您需要使用谷歌 API 生成 OAuth2 令牌,您可以使用 AccountManager
将其存储在Account
中。您需要使用 Google API,因为 OAuth2 令牌生成的一部分发生在服务器本身上 - Google 将存储它发放的令牌的记录,以及与之相关的服务器帐户。如果您不调用 Google API 来生成令牌,Google 将不知道如何将令牌与 Google 服务器帐户匹配。
使用WebView
获取 OAuth2 令牌的方法是执行此操作的正确方法。
一旦你为Account
存储了OAuth2令牌,只要你想使用它进行查询,你就可以从AccountManager
中检索它。因此,您只需要生成一次 OAuth2 令牌(除非它过期),然后一遍又一遍地使用它。