Home » Php » php – How to check IF user has ALREADY liked the facebook page?

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

Posted by: admin July 12, 2020 Leave a comment

Questions:

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

How to&Answers:

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;
}

Answer:

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.