如何检查用户是不是已经喜欢 Facebook 页面?

Posted

技术标签:

【中文标题】如何检查用户是不是已经喜欢 Facebook 页面?【英文标题】:How to check IF user has ALREADY liked the facebook page?如何检查用户是否已经喜欢 Facebook 页面? 【发布时间】:2011-11-15 21:33:20 【问题描述】:

我的网站上有一个赞按钮(供用户赞 fb 粉丝页面)。

如果用户点击喜欢,我会检查是否已触发事件(事件订阅),然后向他们显示一些内容。

我非常感谢以下方面的帮助:

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

如果用户没有登录 facebook 并且他们点击了赞按钮,我希望它显示“你已经是粉丝了!”并显示内容。 (而不是显示灰色的like按钮)

编辑:伙计们,我在 SO 上对此进行了研究,并发现了类似的问题,但并不完全是我所追求的。也许我错了,但如果有人可以提供一个链接到一个描述我的确切问题的链接,它会比一个 - 在这个问题上更有帮助。我检查了以下内容:Check if the user is connected to facebook and then check if he liked a pageFacebook Like Box: How to detect if user already liked the page?Facebook LIKE button hiding when page is already LIKED by userHow to check whether user has liked the page or not using php/javascriptCheck if user already likes fanpage

【问题讨论】:

我不是反对者之一,但如果您在问题中包含该评论,人们可能更愿意提供帮助;链接到您已经尝试过的一些问题,并说明为什么它们没有帮助,这样人们就知道您已经尝试过自己做。 +1 @Matt:谢谢,我已经更新了。 How to check if a user likes my Facebook Page or URL using Facebook's API的可能重复 【参考方案1】:

确保您使用的是 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]

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

【讨论】:

这可能需要user_likes 扩展权限才能运行。【参考方案2】:

如果您使用 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;

【讨论】:

最好扩展BaseFacebook类而不是修改它,否则下次你在不同的项目中使用这个函数时你会想为什么当你抓一个新鲜的时它突然不起作用基类的副本。或者,如果 FB 改变了他们的基类并且你升级了,你的自定义函数都会丢失(相信我,它发生了......) 这不再起作用了。已签名的请求不再包含有关页面喜欢的信息。

以上是关于如何检查用户是不是已经喜欢 Facebook 页面?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Facebook 的 API 检查用户是不是喜欢我的 Facebook 页面或 URL

facebook 开发者工具包 > 确定用户是不是喜欢应用程序中的粉丝页面

检查用户是否喜欢页面| PHP | Facebook

PHP 检查用户是否喜欢页面PHP | Facebook的

JavaScript 检查用户是否喜欢页面Javascript | Facebook的

检查用户是否喜欢页面| Javascript | Facebook