如何检查用户是否已经喜欢facebook页面


How to check IF user has ALREADY liked the facebook page?

我在我的网站上有一个喜欢的按钮(这是为用户喜欢fb粉丝页)。

如果用户点击like,我检查是否触发了even(事件订阅),然后显示一些内容给他们。

我真正希望得到的帮助是:

如果用户登录到facebook和他们已经喜欢的页面,我希望它显示"你已经是一个粉丝!"并显示内容。(而不是显示灰色的like按钮)

如果用户没有登录到facebook,他们点击喜欢按钮,我希望它显示"你已经是一个粉丝!"并显示内容。(而不是显示灰色的like按钮)

伙计们,我在SO上研究过这个问题,发现了类似的问题,但不是我想要的。也许我错了,但如果有人能提供一个链接,其中描述了我的确切问题,这将是一个更有帮助的-在这个问题上。我检查了以下内容:
检查用户是否连接到facebook,然后检查他是否喜欢一个页面
Facebook点赞框:如何检测用户是否已经点赞页面?
当页面已经被用户喜欢时,Facebook的LIKE按钮隐藏
如何使用php/javascript检查用户是否喜欢页面
检查用户是否已经点赞了

如果你使用facebook php API。我想出了这个简短的函数,你可以将它包含在base_facebook.php文件中的BaseFacebook.

public function userIsFan() {
    $sr = $this->getSignedRequest();
    if($sr && is_array($sr)){
        if(array_key_exists('page', $sr)){
            return $sr['page']['liked'] == 1;
        }
    }
    return 0;
}

确保您使用的是xfbml,这个适合我

FB.Event.subscribe('auth.authResponseChange', function(response) {
        FB.api('/me/likes/[page_id]',
          function(response) {
              //console.log(response); - see what the response is on your console.
              if(response.data[0])
                //use script to display your content alert("Liked");
              else
                // just do nothing, display like button alert("Not yet liked");
          }
        );
    });

page_id将是您页面的id而不是名称,要查找id,只需访问http://graph.facebook.com/[your fb page name]

希望这对将来的人有所帮助