我正在开发一款需要通过 OAuth2 从第 3 方网络服务获得授权的应用(第 3 方意味着它不是 Google,我不拥有它)。
本文:
http://developer.android.com/training/id-auth/authenticate.html
似乎建议我应该为此目的使用 AccountManager。考虑了一下之后,我对这样做的好处,甚至我这样做是否合适,都有一些疑问。如果我想使用 Google 帐户或已由其他应用程序安装到 AccountManager 中的其他帐户,那么显然从 AccountManager 获取凭据是个好主意。但由于我要使用的帐户很可能不在 AccountManager 中,因此我必须完成所有工作才能安装它。
AccountManager 在实际处理 OAuth2 请求方面是否提供任何支持?如果没有,那么我使用它有什么好处?
而且由于我不拥有与此帐户类型关联的 Web 服务,我是否适合将此类帐户安装到 AccountManager 中?
谢谢!
最佳答案
在这 4 年之后,这可能是一个相当晚的答案,但让我给你一个简短的回答。
您不能也不应该自己为 Oauth 安装第三方帐户。 Facebook 或 Twitter 等第三方 OAuth 提供商的工作是实现 AccountManager 功能并创建自己的帐户类型。这在 https://developer.android.com/training/id-auth/custom_auth.html 处有粗略的指导。 .
有几个服务,包括Facebook、Twitter、微信等OAuth提供者,他们在AccountManager中注册用户帐户,但我相信他们中的大多数只是用它来实现SyncAdapter(需要Account),而不是提供OAuth第三方应用程序(例如您的应用程序)的功能。
我认为 Google 允许您使用通过 AccountManager 获取的 token 来使用他们的 API;您提供的链接给出了使用 AccountManager for Tasks API 的示例。但是,使用客户端库是实现与 https://developers.google.com/google-apps/tasks/quickstart/java#step_3_configure_the_project_build 中描述的相同目的的更好选择。 .
如果第三方 OAuth 提供商不向您提供任何 SDK 或客户端库,您别无选择,只能使用他们提供的 REST API。
关于android - 使用 Android AccountManager 进行第三方 OAuth2 授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16270904/