一些用户的电子邮件不会从Facebook API调用返回

一些用户的电子邮件不会从Facebook API调用返回,facebook,facebook-graph-api,facebook-javascript-sdk,Facebook,Facebook Graph Api,Facebook Javascript Sdk,我有一个Facebook应用程序,我使用JavaScript JDK 我正在请求电子邮件权限: 对于新用户,我重定向到授权窗口: top.location = 'https://graph.facebook.com/oauth/authorize?client_id=' + APP_ID + '&scope=email&redirect_uri=XXX'; 然后尝试获取它: FB.getLoginStatus(function (response) { if (resp

我有一个Facebook应用程序,我使用JavaScript JDK

我正在请求电子邮件权限:

对于新用户,我重定向到授权窗口:

top.location = 'https://graph.facebook.com/oauth/authorize?client_id=' + APP_ID + '&scope=email&redirect_uri=XXX';
然后尝试获取它:

FB.getLoginStatus(function (response) {
    if (response.authResponse) {
        FB.api('/me', function (response) {
            console.log(response.email);
        }
    }
 }
对于现有用户(如果他们的电子邮件未定义),我甚至尝试重新请求电子邮件权限并重新获取它:

FB.login(function(response){
    if(response.status == 'connected'){
            FB.api('/me?fields=email,id',  function(response) {
                  console.log(response.email);
              });
    }
},{scope: 'email'});
问题是,对于某些用户,我在/me的回复中收到了电子邮件,而对于其他用户,其未定义。 有什么不对劲


谢谢

这不是问题的解决方案,但我最近一直在努力解决这个问题

因为,facebook为所有facebook用户分配了一个电子邮件地址,id为:
[username]@facebook.com
,如果请求没有返回用户的电子邮件地址,我决定使用此电子邮件

i、 e

同样,这不是解决方案,只是一种变通方法


希望这有帮助。

这个问题给我带来了很多麻烦。你有没有在这方面遇到任何进步或解决方法?我也面临着同样的问题,如果你有任何解决方案,请让我知道。。
$email = isset($fb_user["email"])?$fb_user["email"]:$fb_user["username"] . "@facebook.com";