Facebook电子邮件字段返回空(即使“电子邮件”权限被设置和接受)
对于我们应用程序中的某些用户,即使用户已经授予应用程序的电子邮件访问权限,电子邮件字段也会返回NULL。 当我们通过Debugger工具检查范围参数和用户Token的有效性时,一切正常。 权限电子邮件已被接受。 但是,当我们用Graph API来获取具有有效用户令牌的用户的电子邮件时,它根本不会出现。
有没有一种方法可以防止应用程序收到他的电子邮件,即使他授予了电子邮件许可?
谢谢
我有同样的问题,我想我find了原因:如果用户有一个未经确认的电子邮件在Facebook(即Facebook发给他一个validation邮件到用户的电子邮件地址,但他没有回应)Facebook不会通过该电子邮件到您的即使他给你的电子邮件的权限。
所以如果用户有一个用户名(即userName@facebook.com),我所做的就是使用他或她的Facebook电子邮件。
我有同样的问题。 它在我的本地主机上正常工作,我使用PHP SDK的Facebooklogin,当我提交我的请求,它是返回所有的字段,如电子邮件,用户名称等,但在服务器上它不工作。它不会返回用户的电子邮件。 我已经做了大量的研发,我有问题的解决scheme。 🙂
$profile = $facebook->api('/me?fields=email,first_name,last_name');
如果你正在使用php-sdk只是传递这样的字段,它会返回电子邮件,名字等希望它适用于你所有。 谢谢。
如果用户使用电话号码login,Facebook不会发送电子邮件。 查看https://github.com/mkdynamic/omniauth-facebook/issues/61上的评论以获取更多信息。;
在某些情况下,Facebook可能没有用户的有效电子邮件地址:
电子邮件:包含有效的RFC822电子邮件地址的string – 注意:如果用户没有电子邮件地址,则该字段可能为空
您必须提供电子邮件许可以及授权button。
authButton.setReadPermissions(Arrays.asList("email"));
Facebook将为您提供用户的电子邮件ID,并且只有该用户具有与其帐户关联的已确认的电子邮件ID。 如果您的应用程序可以检索某些用户的电子邮件ID,则问题可能不在开发者手中。
@ozba解决scheme不适用,因为当用户有一个未经确认的电子邮件地址时,Facebook现在显示一条警告消息。 所以,如果你遇到这个问题,那么用户使用电话号码注册就更好了。
一些可能的原因:
- 没有账户的电子邮件地址(只有电话号码)
- 没有确认的帐户电子邮件地址
- 用户进入了一个安全检查点,要求他们重新确认他们的电子邮件地址,他们还没有这样做,所以用户的电子邮件地址是无法访问的。
检查: https : //developers.facebook.com/bugs/298946933534016
根据文件 :
请注意,即使您要求电子邮件许可,也不保证您将收到电子邮件地址。 例如,如果有人使用电话号码而不是电子邮件地址注册Facebook,则电子邮件字段可能为空。
这将解释为什么一些用户有一个null
电子邮件!
所有你必须知道的:
1) 链接1
一些可能的原因:
帐户没有电子邮件地址
没有确认的帐户电子邮件地址
账户没有经过validation的电子邮件
用户进入了一个安全检查点,要求他们重新确认他们的电子邮件地址,但他们还没有这样做
用户的电子邮件地址无法访问
您还需要“电子邮件”扩展权限,即使对于具有有效的,确认的,可到达的电子邮件地址的用户也是如此。
2) 链接2
请注意,即使您要求电子邮件许可,也不保证您将收到电子邮件地址。 例如,如果有人使用电话号码而不是电子邮件地址注册Facebook,则电子邮件字段可能为空。
你可以试试这个,它会工作String email = user.getProperty(“email”)。toString(); stringsafeEmail = user.asMap()。get(“email”)。toString();
您需要从Facebook获得更多的许可。
包括(about_me)许可到Facebook开发设置,也在您的应用程序或代码..
我已经阅读过以前的回复,但是虽然其中一些是真实的,如果用户没有确认电子邮件,但手机号码,很多时候会发生这种错误,因为忽略了如何使用FB api图来请求信息。 假设您的login已成功完成,并且您现在有一个访问令牌和用户标识,但仍然无法查看您感兴趣的电子邮件和其他字段。确认login状态为已连接后,请使用此请求继续:
FB.api( '/me', 'GET', {"fields":"id,name,birthday,email,about,cover"}, function(response) { // Insert your code here } );
取决于您现在要求您的权限,现在可以根据您的需求来获取更多信息。
$loginUrl = $facebook->getLoginUrl( array( 'req_perms' => 'email' ) );
- Facebook Graph API,如何获取用户的电子邮件?
- 使用没有访问令牌的Facebook Graph API获取公共页面状态
- 原生Facebook应用程序无法在iOS 9中使用Facebooklogin进行打开
- 使用Facebook进行身份validation的网站的REST API
- 这个应用程序没有configurationAndroid密钥散列。 – 使用Facebook SDK进行login
- Facebookcallback追加'#_ = _'返回URL
- 有没有一个像Facebook的Google Plus URLdebugging器?
- 像使用Facebook Graph API的页面一样
- facebooklogin问题 – canOpenURL:URL失败:“fbauth2:///” – 错误:“(null)”