对于我们应用程序中的某些用户,即使用户已授予应用程序的电子邮件访问权限,电子邮件字段也会返回NULL。 当我们通过调试器工具检查范围参数和用户令牌的有效性时,一切正常。权限电子邮件已被接受。 但是,当我们使用有效的用户令牌向图形API请求用户的电子邮件时,它根本没有出现。Facebook电子邮件字段返回空(即使“电子邮件”权限已设置并被接受)
用户可以阻止应用程序收到他的电子邮件,即使他授予了电子邮件权限吗?
感谢
对于我们应用程序中的某些用户,即使用户已授予应用程序的电子邮件访问权限,电子邮件字段也会返回NULL。 当我们通过调试器工具检查范围参数和用户令牌的有效性时,一切正常。权限电子邮件已被接受。 但是,当我们使用有效的用户令牌向图形API请求用户的电子邮件时,它根本没有出现。Facebook电子邮件字段返回空(即使“电子邮件”权限已设置并被接受)
用户可以阻止应用程序收到他的电子邮件,即使他授予了电子邮件权限吗?
感谢
我有同样的问题,我想我找到了原因: 如果用户有一个未经确认的电子邮件在Facebook(即Facebook发给他一个验证邮件到用户的电子邮件地址,但他没有回应)Facebook不会即使他给了你电子邮件许可,也会将该电子邮件传递给你的应用。
所以我做的是使用他或她的Facebook电子邮件,如果用户有一个用户名(即[email protected])。
我刚刚确认了这个问题。即使在明确要求用户电子邮件之后,Facebook也不会将此信息提供给您的应用程序,直到用户确认他的电子邮件。谢谢您的回答。我追了很久。 –
欢迎您,如果只有@BenjaminNaïm会将我的答案标记为正确...... :) – ozba
未经确认的电子邮件也会阻止Facebook上的图像回复? –
在某些情况下,Facebook可能没有一个有效的电子邮件地址的用户:
电子邮件:含有效RFC822电子邮件地址字符串 - 注意:这 领域可能,如果为空不电子邮件地址是供用户
的Facebook w ^虐待提供给你一个用户的电子邮件ID,当且仅当该用户有一个确认的电子邮件ID与他的帐户相关联。如果您的应用可以为某些用户检索电子邮件ID,则开发人员可能无法解决问题。
你可以尝试这个工作 String email = user.getProperty(“email”)。toString(); 字符串safeEmail = user.asMap()。get(“email”)。toString();
您必须提供电子邮件许可以及授权按钮。
authButton.setReadPermissions(Arrays.asList("email"));
如果用户使用其电话号码登录,Facebook不会发送电子邮件。 查看关于https://github.com/mkdynamic/omniauth-facebook/issues/61的更多信息。
@ozba解决方案不适用,因为当用户拥有未经确认的电子邮件地址时,Facebook现在会显示一条警报消息。所以,如果你遇到这个问题,那么用户更喜欢用电话号码注册。
一些可能的原因:
我有同样的问题。这是在我的本地工作正常,我使用Facebook登录PHP SDK,当我提出我的要求是全部归还,如电子邮件领域,用户名等,但在服务器上不知它是不是working.It不会返回用户的电子邮件。 我已经做了很多上的R & d和我对这个问题的解决方案。 :)
$profile = $facebook->api('/me?fields=email,first_name,last_name');
如果你正在使用PHP-SDK只是传递领域这样它返回的电子邮件,FIRST_NAME等 希望它能为你工作的所有。 谢谢。
谢谢,这对我有帮助。 –
$loginUrl = $facebook->getLoginUrl(
array(
'req_perms' => 'email'
)
);
您需要从facebook的多一个许可。
包括(about_me)权限facebook的开发环境,并在您的应用程序或代码..
注意,即使您请求的电子邮件的权限是不保证你会得到一个电子邮件地址。例如,如果有人使用电话号码而不是电子邮件地址注册Facebook,则电子邮件字段可能为空。
这可以解释为什么有些用户有一个null
电子邮件!
我有一个主要的电子邮件帐户,它已验证,但它不是来 – Swati
我看了以前的答复,但尽管他们中的一些真实的一样,如果用户没有电子邮件确认,但手机号码,很多时候这个错误发生忽视了如何使用FB图形API请求信息。比方说,你的登录已经成功完成,你现在有一个访问令牌和用户ID等,但仍不能看到电子邮件和其他领域你有兴趣来吧使用确认登录状态后,这个请求作为连接:
FB.api(
'/me',
'GET',
{"fields":"id,name,birthday,email,about,cover"},
function(response) {
// Insert your code here
}
);
取决于你的要求,你现在可以根据自己的需要追赶的进一步信息的权限。
对于PHP SDK,此[链接](http://stackoverflow.com/questions/25069816/facebook-email-field-return-null-even-if-the-email-permission-is-set- and-acce/36332882#36332882)可能会有帮助! –
确保OAuth调用您使用包含'scope:['email']'获得访问令牌。请务必使用[图形API资源管理器](https://developers.facebook.com/tools/explorer/)尝试使用标记,并确保左侧的“电子邮件”权限*不会变灰。 –