Facebook注册时如何获取电子邮件和用户名

Facebook注册时如何获取电子邮件和用户名,facebook,facebook-graph-api,Facebook,Facebook Graph Api,据我所知,在新的Facebook API上,无法获取Facebook用户名。此外,如果用户注册到Facebook,如果他或她使用电话号码登录,他或她的帐户可能缺少电子邮件地址 然而,我正在从事一个项目,在登录Facebook时,如果用户没有用户,那么Facebook登录将被解释为注册。因为,据我所知,使用API无法获取Facebook用户名,所以我使用电子邮件字段生成用户名,只考虑字母 但是,在某些情况下,以这种方式生成的用户名是重复的,或者Facebook帐户没有电子邮件地址。我能想到的最佳解

据我所知,在新的Facebook API上,无法获取Facebook用户名。此外,如果用户注册到Facebook,如果他或她使用电话号码登录,他或她的帐户可能缺少电子邮件地址


然而,我正在从事一个项目,在登录Facebook时,如果用户没有用户,那么Facebook登录将被解释为注册。因为,据我所知,使用API无法获取Facebook用户名,所以我使用电子邮件字段生成用户名,只考虑字母

但是,在某些情况下,以这种方式生成的用户名是重复的,或者Facebook帐户没有电子邮件地址。我能想到的最佳解决方案是将用户重定向到一个表单,在该表单中,他或她可以输入电子邮件和/或用户名,但这无助于用户体验


有没有一种方法可以在不让用户输入的情况下收集这些数据?或者类似的东西?

首先,在存储数据之前,您应该始终将要存储的数据呈现给用户,并让用户更改数据

这就是说,(应用程序范围)ID是唯一真正独特的东西,您可以直接使用电子邮件(如果用户已经注册,只需将Facebook ID添加到您的数据库中)并在没有电子邮件的情况下显示一个输入字段,或者生成一个包含其名字和姓氏的用户名。将所选用户名呈现给用户并让他更改,或者告诉他该用户名已经存在

毕竟,用户不想选择自己的用户名吗


如果你想让用户顺利,并且无论如何也不想打扰他,你可以存储他的Facebook ID,或者直接使用电子邮件作为用户名(包括@符号和域名),就像我在上面写的那样。如果这还不够好,您需要实现自己的例程来自动生成用户名Facebook没有这样做的一般逻辑。

“如果用户没有用户”。。。weird@luschn,我的意思是,我们有一个未登录的来宾用户。此来宾用户有一个Facebook用户,该用户可能链接到应用程序用户,也可能没有。在那句话中,我指的是后者。“有没有一种方法可以收集这些数据而不让用户输入?”——所以你知道这是关于(用户名)或(电子邮件)不可用的数据——但你仍然在问,不知何故,这些数据是否会神奇地出现…?如果不能自动收集到必要的信息,让用户提供这些信息是最好的选择。(正如luschn已经说过的,建议从可用数据(如姓名)自动创建用户名是减少摩擦的可行选择。)“你知道这是关于(用户名)或(电子邮件)可用的数据”不,我不知道。我想是吧。请不要对我说那些关于神奇地获取不可用数据的无用评论。如果你能确认数据不可用,或者纠正我的假设,那么你就是在为这篇文章投稿。如果你讽刺地嘲笑我的问题,那你就是在表现幼稚园水平。我不知道这种方法,所以我假设用户必须输入丢失的数据。我说得对吗?用户可以设置自己的用户名,但在Facebook注册的全部目的是拥有注册功能,只需单击一下即可完成注册工作。我说的只是在Facebook上注册,因为如果这个人已经有了一个应用程序用户,那么收集用户名和/或密码就无关紧要了。如果用户没有电子邮件怎么办?如果你想让它对用户顺畅,并且无论如何也不想打扰他,你可以只存储他的facebook id。这是一个数字,从用户的角度来看是不直观的。我以前有过这样的解决方案,但客户不喜欢,这是可以理解的。我需要一个用户名和一封电子邮件。我正在以我描述的方式从电子邮件中获取这两种信息,但如果其中任何一种已经被使用,或者用户以电话号码注册到Facebook而不是电子邮件,我的解决方案将无法工作。我可以使用这个名字或facebook id生成神奇的文本,但这是不直观的。因此,问题是:有没有一种方法可以实现我想要的或接近它的东西?为什么不直接使用电子邮件作为用户名?同样:Facebook帐户不一定有电子邮件地址,因为用户可能使用他们的电话号码注册到Facebook,而不提供他们的电子邮件地址。在这种情况下,我无法从Facebook获得电子邮件。“注意,即使您请求电子邮件权限,也不能保证您会获得电子邮件地址。例如,如果有人使用电话号码而不是电子邮件地址注册Facebook,则电子邮件字段可能为空。”()