Facebook Javascript,如何检测用户是否是我的Facebook页面的粉丝?在我的网站上?

Facebook Javascript,如何检测用户是否是我的Facebook页面的粉丝?在我的网站上?,javascript,facebook,api,facebook-fql,Javascript,Facebook,Api,Facebook Fql,我有以下JS代码 该代码的目的是首先获取用户的facebook id,然后使用FQL根据我的页面id检查该id,并确保该用户是粉丝 我遇到的问题是,只有当我使用自己的个人facebook档案登录时,代码才会真正起作用。我想这是因为我的个人资料和FB.init appid有某种联系 有人能看看这个代码,告诉我哪里出了问题吗 我的目标再次是使用JS首先获取用户id(因此是他们的缩略图),然后对照我自己的facebook页面来检查他们是否是粉丝。如果他们是facebook的粉丝,那么我可能会给他们一张

我有以下JS代码

该代码的目的是首先获取用户的facebook id,然后使用FQL根据我的页面id检查该id,并确保该用户是粉丝

我遇到的问题是,只有当我使用自己的个人facebook档案登录时,代码才会真正起作用。我想这是因为我的个人资料和FB.init appid有某种联系

有人能看看这个代码,告诉我哪里出了问题吗

我的目标再次是使用JS首先获取用户id(因此是他们的缩略图),然后对照我自己的facebook页面来检查他们是否是粉丝。如果他们是facebook的粉丝,那么我可能会给他们一张优惠券什么的

提前谢谢

<script src="http://connect.facebook.net/en_US/all.js"></script>
//Connect to facebook with my app id..
FB.init({ 
    appId:'135445813195028', 
    cookie:false, 
    status:true, 
    xfbml:true
});

//Check to see if user is actually CONNECTED???
FB.getLoginStatus(function(response) {
    if (response.session) {
        // USER IS CONNECTED
        FB.api('/me', function(user) {
            if (user != null) {
                var image = document.getElementById('imagez');
                image.src = 'http://graph.facebook.com/' + user.id + '/picture?type=large';
                var name = document.getElementById('name');
                name.innerHTML = user.name;
                FBID = user.id;
                console.log('Facebook ID:' + FBID);
                //assemble an FQL query to see if the guy is a fan of our page...
                myquery = 'SELECT uid FROM page_fan WHERE page_id = 126923080686340 AND uid = ' + FBID;
                console.log('query = ' + myquery); 
                ///Run FQL Query to see if user is a fan
                FB.api({
                    method: 'fql.query',
                    query: myquery
                }, function(resp) {
                    if (resp.length) {
                        var IsFan = true;
                        alert('You are A fan!')
                        console.log('Visitor is a fan');
                        //show coupon code...
                    } else {
                        alert('Signed into facebook, but Not a fan!');
                        var IsFan = false;
                        console.log('Visitor is not a fan');
                        //show like button...
                        //once like is clicked then refresh the page...
                    }
                });
            //END Run FQL Query to see if user is a fan
            }
        });
        //Figure out if they are a fan...
    } else {
        // USER IS NOT CONNECTED
        alert('NO USER session, user is not logged into facebook!!!');
    }
});

//使用我的应用程序id连接到facebook。。
FB.init({
appId:'135445813195028',
曲奇:错,
状态:正确,
xfbml:对
});
//检查用户是否已连接???
FB.getLoginStatus(函数(响应){
if(response.session){
//用户已连接
FB.api('/me',函数(用户){
如果(用户!=null){
var image=document.getElementById('imagez');
image.src=http://graph.facebook.com/“+user.id+”/picture?type=large';
var name=document.getElementById('name');
name.innerHTML=user.name;
FBID=user.id;
console.log('Facebook ID:'+FBID);
//组装一个FQL查询,看看这个家伙是否是我们页面的粉丝。。。
myquery='从页面中选择uid,其中页面id=126923080686340,uid='+FBID;
log('query='+myquery);
///运行FQL查询以查看用户是否是风扇
FB.api({
方法:“fql.query”,
查询:myquery
},功能(resp){
如果(分别为长度){
var IsFan=真;
警惕(“你是个粉丝!”)
log(“访问者是粉丝”);
//显示优惠券代码。。。
}否则{
警报(“登录facebook,但不是粉丝!”);
var IsFan=假;
log(“访问者不是粉丝”);
//显示像按钮。。。
//单击“喜欢”后,请刷新页面。。。
}
});
//结束运行FQL查询以查看用户是否是风扇
}
});
//看看他们是不是粉丝。。。
}否则{
//用户未连接
警报('没有用户会话,用户未登录facebook!!!');
}
});

检查用户是否已连接到您的应用程序。。而不是facebook

但当用户未连接到您的应用程序时,
.status
属性可以告诉您失败的原因(如果用户根本没有登录,或者只是登录到您的应用程序)

所以你应该使用的结构是

FB.getLoginStatus(function(response) {
        if(response.session) {
            alert('connected to Application');
        } else {
            // no user session available, someone you dont know
            if(response.status == "notConnected") {
                // But user is logged into facebook
                alert("Not connected to Application, but is logged in to Facebook");
            } else {
                // User is not logged into facebook
                  alert('Not logged in to facebook');
            }
        }
    });
但您无法访问未授权您的应用程序的用户的ID。

不是通过Javascript API。

我不能肯定,但我认为这是一个权限问题。Facebook可能不希望你在没有权限的情况下(例如通过应用程序)检查用户的页面。希望你不能。这真的不关你的事。不能说FB是否允许这样做,但你确定其他人或你的其他尝试启用了控制台吗?否则您的
console.log
命令将失败并停止JS。@tomalak,这不关我的事是什么意思?如果你有一个facebook页面,那么确定你网站上的访问者是否是该页面的粉丝是合理的?。就像“喜欢”按钮一样,它已经告诉访问者他们是否喜欢你的页面。@gaby,我不确定我是否理解你的评论?如何查看console.log?明白了,所以在共享用户ID之前,我必须确保用户已经授权了我的应用程序。看起来他们应该公开,但我明白他们为什么不公开。