我正在开发一个应用程序,需要通过 OAuth2 从第三方网络服务获得授权(第三方意味着它不是 Google 并且我不拥有它)。
本文:
http://developer.android.com/training/id-auth/authenticate.html http://developer.android.com/training/id-auth/authenticate.html
似乎建议我应该使用 AccountManager 来达到此目的。经过一番思考后,我对这样做的好处有些怀疑,或者即使我这样做是否合适。如果我想使用 Google 帐户或已通过其他应用程序安装到 AccountManager 中的其他帐户,那么显然从 AccountManager 获取凭据是个好主意。但由于我要使用的帐户很可能不在 AccountManager 中,因此我必须完成所有工作才能安装它。
AccountManager 在实际处理 OAuth2 请求方面是否提供任何支持?如果没有,那么使用它我能得到什么?
由于我不拥有与此帐户类型关联的 Web 服务,因此我是否适合将此类帐户安装到 AccountManager 中?
谢谢你!
四年过去了,这可能是一个相当晚的答案,但让我给你一个简短的答复。
您不能也不应该自己为 Oauth 安装第三方帐户。 Facebook 或 Twitter 等第三方 OAuth 提供商的工作就是实现 AccountManager 功能并创建自己的帐户类型。这大致指导于https://developer.android.com/training/id-auth/custom_auth.html https://developer.android.com/training/id-auth/custom_auth.html.
有多种服务,包括 Facebook、Twitter、微信等 OAuth 提供商,他们在 AccountManager 中注册用户帐户,但我相信大多数服务只是用它来实现 SyncAdapter(需要 Account),而不是向第三方提供 OAuth 功能- 派对应用程序,例如您的应用程序。
我认为 Google 允许您使用通过 AccountManager 获取的令牌来使用他们的 API;您提供的链接给出了使用 AccountManager for Tasks API 的示例。但是,使用客户端库是实现相同目标的更好选择,如中所述https://developers.google.com/google-apps/tasks/quickstart/java#step_3_configure_the_project_build https://developers.google.com/google-apps/tasks/quickstart/java#step_3_configure_the_project_build.
如果第三方OAuth提供商没有为您提供任何SDK或客户端库,您别无选择,只能使用他们提供的REST API。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)