Facebook 电子邮件从 phonegap facebookConnect 插件返回为未定义

Facebook email is returned as undefined from phonegap facebookConnect plugin

我正在使用 phonegap facebook Connect plugin 在我的应用程序中启用 facebook 登录。 但是,facebook 电子邮件被返回为未定义。

我需要在我的代码中添加一些东西吗? 我在互联网上查找了这个问题,看来我的代码应该可以工作。除电子邮件地址外,其他所有内容都会返回。

如果你能提供帮助,我将不胜感激

这是我的 javascript 代码:

   facebookConnectPlugin.api('/me?fields=id, email, link, name, picture', ["public_profile"],function(data){
        var fb_user_id = data.id;
        var fb_email = data.email;
        var fb_name = data.name;
        var fb_picture_url = data.picture.data.url;
        var fb_user_link = data.link;
        alert("fb_email" + fb_email);
    }); //end api call

编辑:

我用这个代码尝试了一个测试用户帐户,电子邮件地址 DID 被返回。但是,对于我正在测试的真实帐户,它不起作用。

通过更多测试,我尝试按如下方式添加电子邮件权限,但是这不起作用,因为我返回的数据表明 "FACEBOOK_NON_JSON_RESULT"

 facebookConnectPlugin.api('/me?fields=id, email, link, name, picture', ["public_profile", "email"],function(data){
            var fb_user_id = data.id;
            var fb_email = data.email;
            var fb_name = data.name;
            var fb_picture_url = data.picture.data.url;
            var fb_user_link = data.link;
            alert("fb_email" + fb_email);
        }); //end api call

我找到了解决此问题的方法,即执行两个单独的 api 请求,如下所示:

    facebookConnectPlugin.api('/me?fields=email', ["email"], function(apiResponse) {

            //alert("api" + JSON.stringify(apiResponse));
            fb_email = apiResponse.email;
            alert("fb_email" +fb_email); //email being retrieved successfully
            facebookConnectPlugin.api('/me?fields=id, name, link, picture', ["public_profile"],function(data) {
                 alert("data" + JSON.stringify(data));

                 var fb_user_id = data.id;
                 var fb_name = data.name;
                 var fb_picture_url = data.picture.data.url;
                 var fb_user_link = data.link;

                 alert("fb_user_id" + fb_user_id);          
                 alert("fb_name" + fb_name);
                 alert("fb_picture_url" + fb_picture_url);
                 alert("fb_user_link" + fb_user_link);
                 //do stuff with facebook user data here
             }

             ,function(error){  
                   //api call failed
                   alert("api call Failed: " + JSON.stringify(error));
             }); //end api                          
   }

   ,function(error){    

            alert("email api call Failed: " + JSON.stringify(error));
   }); //end api    

这很完美!