Check if user already likes fanpage Check if user already likes fanpage php php

Check if user already likes fanpage


<?phprequire '../src/facebook.php';// Create our Application instance (replace this with your appId and secret).$facebook = new Facebook(array(  'appId' => 'APP_ID',  'secret' => 'APP_SECRET',));$user = $facebook->getUser();$page_id = "123456789";$page_name = $facebook->api("/".$page_id)['name'];$page_link = $facebook->api("/".$page_id)['link'];if ($user) {  try {    $likes = $facebook->api("/me/likes/".$page_id);    if( !empty($likes['data']) )        echo "I like!";    else        echo "not a fan!";  } catch (FacebookApiException $e) {    error_log($e);    $user = null;  }}if ($user) {  $logoutUrl = $facebook->getLogoutUrl();} else {  $loginUrl = $facebook->getLoginUrl(array(    'scope' => 'user_likes'  ));}// rest of code here?>


The simplest way would be to call the Graph API to get the /me/likes connections (note you have to require the user_likes permission). Then go through each and compare id with the ID of your page.

Assuming you're using the official Facebook PHP SDK, and have an instance of the Facebook object set up (see Usage section in the aforementioned page), the following code can be used to find out if the user is fan of Daft Punk:

$our_page_id = '22476490672'; // This should be string$user_is_fan = false;$likes = $facebook->api( '/me/likes?fields=id' );foreach( $likes['data'] as $page ) {    if( $page['id'] === $our_page_id ) {        $user_is_fan = true;        break;    }}

Now, you can further work with the $user_is_fan variable.

In JavaScript, the code would be very similar. Using the official JavaScript SDK's method FB.api (again, assuming you have taken of the authentication):

FB.api('/me/likes?fields=id', function(response) {    var our_page_id = '22476490672';    var user_is_fan = false;    var likes_count = response.data.length;    for(i = 0; i < likes_count; i++) {        if(response.data[i].id === our_page_id) {            user_is_fan = true;            break;        }    }});

Note that here we're using an asynchronous request and callback, so the code using the user_is_fan variable must be inside the function.


In case you are OK with user giving the permissions, for a PHP based website it can be done this way easily:

1- Create a new Facebook app here.

2 - Download Facebook PHP SDK from here. Extract the files and place it in the same folder with the file in which you will paste the code given below!

3 - Get your Facebook Page ID using this tool.

4 - Generate Facebook like box code for your page from here.

After 1, 2, 3 and 4 steps are complete, you can check if user has liked a page or not with the following code:

<?php    require('facebook.php');    $config = array(         'appId' => 'your facebook app id',         'secret' => 'your facebook app secret code',        'allowSignedRequest' => false    );    $facebook = new Facebook($config);    $user_id = $facebook->getUser();    if (isset($user_id)) {        try {                       $likes = $facebook->api('/me/likes/your_facebook_page_id_here', 'GET');                         if (!empty($likes['data'])) // if user has liked the page then $likes['data'] wont be empty otherwise it will be empty            {                echo 'Thank you for liking our fan page!';                               }            else {                echo 'You have not liked our fan page! Like it now:';                ?>                                   <iframe src="//www.facebook.com/plugins/likebox.php?href=https%3A%2F%2Fwww.facebook.com%2Fchillopedia&width&height=290&colorscheme=light&show_faces=true&header=true&stream=false&show_border=true&appId=1392604484339363" scrolling="no" frameborder="0" style="border:none; overflow:hidden; height:290px;" allowTransparency="true"></iframe> //replace this with your own Facebook like box code                <?php            }        } catch (FacebookApiException $e) {            $login_url = $facebook->getLoginUrl();            echo '<a href="' . $login_url . '">Please click here to login into your Facebook account.</a>';            error_log($e->getType());            error_log($e->getMessage());        }    } else {        $login_url = $facebook->getLoginUrl();        echo '<a href="' . $login_url . '">Please lick here to login into your Facebook account</a>';    }    ?>

The user will click on the "Please click here to login into your Facebook account." text which will redirect it to Facebook app permissions page, once user allows the permission to your app the code will fetch user's data and will display the likebox if user hasn't liked your fan page.