我可以使用AccountManager让用户使用他们的Google帐户登录吗?

问题描述:

我正在创建一个需要用户创建帐户的应用程序。 (如Facebook或Twitter会要求你。)我可以使用AccountManager让用户使用他们的Google帐户登录吗?

但是,由于它是一个Android应用程序,我应该/可以让他们使用AccountManager或其他服务使用他们的Google帐户登录吗?如果他们只需登录他们的Google帐户并将他们的设置和其他选项保存到该帐户,就会非常有帮助。

的主要问题概括:

  1. 是否有可能让用户只需使用他们的谷歌帐户,我的应用程序?
    • 如果是这样,我是否使用AccountManager让他们登录并保存帐户信息/设置?
      • 还有什么其他选择?
+0

有一段时间,您可以向Google App Engine应用请求身份验证,并通过将该应用用作后端,您可以获得经过身份验证的标识符和/或电子邮件地址。不知道这是否仍然有效,我听说它正在被逐步淘汰。 – nmr 2012-03-10 06:07:21

是的,你可以让用户登录到自己的谷歌服务中使用他们的谷歌凭证,例如,我对谷歌的任务的应用程序,我使用Android的AccountManager让用户验证自己的身份使用Android设备上的谷歌帐户(无需用户输入自己的密码!)

有一些很好的例子,让你开始:

The user has to confirm whether you can use his/her credentials to log into the google service

您的其他选项是让用户手动输入他们的用户名/密码。为此,您必须使用第三方身份验证API(例如用于OAuth的signpost)才能登录。

在我的任务/待办应用程序中,我为用户提供了使用他们的Android凭据或使用第三方登录的选项对于想要登录使用一些其他账户(未在该设备上启用的帐户)的用户认证

让我知道如果您有更多问题

+0

因此,第一次运行应用程序时屏幕就会出现? (它会说我的应用程序的名称,而不是TasksSample显然),然后他们会保持登录到应用程序或它是如何工作的? – Cole 2012-03-11 01:54:20

+0

是的,当你要求在Android上使用用户凭据时,会出现这种情况。一旦获得访问权限,就可以根据用户凭据生成临时授权令牌(无法直接查看)。这个临时令牌可以用来代表用户访问谷歌(或者其他API,如FB/Twitter,视情况而定)API。一旦令牌到期,您可以以编程方式刷新它以重新获得对该服务的访问权限,而无需向用户显示这样的屏幕。 – Soham 2012-03-11 09:07:28

+0

是否有任何教程可用于获取这些令牌为Gmail和Facebook,以便能够从他们获取数据? – 2012-07-26 07:41:28

@Soham给你一些非常有用的链接,但他没没有更正一个重大错误:
AccountManager是管理您的Android设备上的帐户的实体 - 它与您的谷歌accoun没有任何关系牛逼!您可以使用Google帐户并使用AccountManager在您的设备上创建一个新帐户。

其他你可以从链接Soham给你。

虽然这是一项新开发,但也可以使用作为Google Play服务的一部分引入的Google Plus登录功能。更多信息可在Android developers blog找到。见示例实现从Banjo应用

enter image description here

似乎有很大的局限性 - 用户需要安装在设备上的Google+应用使用此。

enter image description here

而且这是一个相当不错的blog,如果有人有兴趣实施这一方案。