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

╄→гoц情女王★ 提交于 2019-12-17 16:28:32

问题


I have a like button on my website (which is for users to like the fb fan page).

If the user clicks like, I check to see if the even has been fired (event subscribe), and then display some content to them.

What I would really appreciate help with is the following:

If the user is logged in to facebook AND they already like the page, I want it to display "You're already a fan!" and show the content. (rather than displaying the greyed out like button)

OR

If the user is not logged in to facebook and they click the like button, I want it to display "You're already a fan!" and show the content. (rather than displaying the greyed out like button)

edit: Guys, I've researched this on SO and have found similar questions but not quite what I'm after. Maybe I'm mistaken but if someone can provide a link to one which describes my exact problem, it would be a lot more helpful than a - on the question. I have checked the following:
Check if the user is connected to facebook and then check if he liked a page
Facebook Like Box: How to detect if user already liked the page?
Facebook LIKE button hiding when page is already LIKED by user
How to check whether user has liked the page or not using php/javascript
Check if user already likes fanpage


回答1:


If you use the facebook php API. i've came up with this short function that u can include inside the base_facebook.php file into the class 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;
}



回答2:


Make sure you are using xfbml, this one works for me

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 will be the id not the name of your page, to find out the id, just visit http://graph.facebook.com/[your fb page name]

hope this helps someone in the future.



来源:https://stackoverflow.com/questions/7397724/how-to-check-if-user-has-already-liked-the-facebook-page

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!