java - 使用 android AccountManager 获取 OAuth2 token ?

标签 java android google-api oauth-2.0 accountmanager

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

最佳答案

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

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

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

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

关于java - 使用 android AccountManager 获取 OAuth2 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11061211/

相关文章:

android - 如何使用 POJO 类将值从 RecyclerView 传递到另一个 Activity?

node.js - 无法获取用户信息

google-api - Google Custom Search Api 不断给我 "usageLimits"错误

java - 如何通过 tabLayout 显示 fragment View

java - 在 xml 中附加节点时出现错误的文档错误

Java 在数组中编写的方法中实现 ArrayList

Android-使用游标从数据库表中获取单个值

android - E/OpenGLRenderer:Getting MAX_TEXTURE_SIZE from GradienCache Error while using Picasso 和 okhttp in genymotion

java - SpringJDBC ClassPathXmlApplicationContext 无法从资源中的 xml 加载 getbean

python - Google Analytics API Python 错误 403 - 权限不足