如何使用 FQL 检查用户是否是 facebook 页面的粉丝?

How to check if user is a fan of facebook page by using FQL?

我想检查用户是否是特定 Facebook 页面的粉丝,我用 FQL 尝试了很多次,但响应始终为空:

FB.api({
        method:     'fql.query', 
        query:  'SELECT uid FROM page_fan WHERE uid=user_id AND page_id=page_id'
    }, function(resp) {
        if (resp.length) {
            alert('A fan!')
        } else {
            alert('Not a fan!');
        }
    }
);

我试过用户 table 是 运行 好:

FB.api(
          {
            method: 'fql.query',
            query: 'SELECT name FROM user WHERE uid=me()'
          },
          function(response) {
            alert('Your name is ' + response[0].name);
          }
        );

我刚刚签到 https://developers.facebook.com/docs/reference/fql/page_fan/。 facebook好像不支持FQL,怎么办?

非常感谢您的帮助。

更新 我刚刚尝试了 Graph API 解决方案,但结果是数组 null:

FB.api('/100005548217775/likes/329849167104448',function(response) {
                    if( response.data ) {
                        if( !isEmpty(response.data) )
                            alert('You are a fan!');
                        else
                            alert('Not a fan!');
                    } else {
                        alert('ERROR!');
                    }
                }); 

如果您没有 v2.0 应用程序,则根本无法使用 FQL,因为它已被弃用。此外,您使用了错误的 method 参数,该参数也已弃用。

FQL 的官方端点是

/fql?q={url_encoded_query}

其中 {url_encoded_query} 是 url 编码的 FQL 查询。

我建议您跳过 FQL,并使用标准图形 API 功能(这是未来的证明):

/{user-id}/likes/{page-id} 

请注意,您需要访问令牌中的 user_likes 权限才能获得任何结果。

我找到了答案:

FB.login(function(response){
            if(response.status=='connected'){
                FB.api('/me/likes/' + 216524221773305, function(api_response)
                 {
                    if(api_response.data.length > 0){
                        setLocation('<?php echo $this->getConnectUrl() ?>');
                    }else{
                        jQuery('#facebook-like-popup').show();
                    }
                 });
            } 
        }, {scope: 'user_likes'});

有一件事让我很困惑,那就是:当我刚刚喜欢一个粉丝专页时,然后查看结果仍然return Array[]。 Facebook 似乎不会立即更新数据。不确定我的想法是对的?

这也行不通,因为您需要来自 Facebook 的 user_likes 权限,您可以尝试其他方法,假设您想要了解用户是否喜欢的页面是

https://www.facebook.com/pg/Poulamecom-159391200925483/likes/?ref=page_internal

1)访问页面 2)查看源代码 3)在source里面找到"likeStatus",如果是true那么用户喜欢这个页面,如果是false那么用户不喜欢这个页面 4)"visit page" 可以通过脚本自动完成并检查 likeStatus":true 或 likeStatus":false