FB.getLoginStatus在第二次单击时响应(response.status = connected)

时间:2016-03-04 15:01:21

标签: javascript facebook-graph-api facebook-javascript-sdk facebook-login share-button

我想将我的帖子分享到Facebook,所以我已经编写了代码。但是当我点击我的按钮时,FB.getLoginStatus第一次响应“unknown”到response.status但是如果再次点击则响应“connected”。 这是我的代码:

$("#fb_share").on("click",function(){
  var poi_id    = $("#fb_share").attr('data-id');
  FB.getLoginStatus(function(statusResp) {
    console.log(statusResp);
    if (statusResp.status === 'connected') {
        FB.api('/me?fields=email', function(response) {
            if(response.email){
                sendEventInvite(statusResp,response,poi_id);
            }else{
                FBLoginFirst(poi_id,statusResp,"detail");
            }
        });

    }else{
console.log("fb_permission_scope---"+fb_permission_scope);
        FBLoginFirst();
    }
});
});

这是我在console.log中获得的内容

Object { status="unknown",  authResponse=null}

这是我在第二次点击时得到的

Object { status="connected",  authResponse={...}}`

1 个答案:

答案 0 :(得分:0)

if语句中有一个额外的等号(=)。在将某些内容与布尔值进行比较时,三个等号(===)是一个正确的运算符。

试试这个:

$("#fb_share").on("click",function(){
  var poi_id    = $("#fb_share").attr('data-id');
  FB.getLoginStatus(function(statusResp) {
    console.log(statusResp);
    if (statusResp.status == 'connected') {
        FB.api('/me?fields=email', function(response) {
            if(response.email){
                sendEventInvite(statusResp,response,poi_id);
            }else{
                FBLoginFirst(poi_id,statusResp,"detail");
            }
        });

    }else{
console.log("fb_permission_scope---"+fb_permission_scope);
        FBLoginFirst();
    }
});
});