繁体   English   中英

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

[英]Facebook email is returned as undefined from phonegap facebookConnect plugin

我正在使用phonegap facebook Connect插件在我的应用程序中启用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    

这很完美!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM