Search code examples
phpoauth-2.0facebook-loginfacebook-sdk-3.0

PHP. Get information about facebook user


i have made a web server in php, it receives the facebook userAccessToken by my webApp and it checks if it's valid, i want get the basic info about that user but i don't find a way to do this. Someone can help me?


Solution

  •     <?php
          require_once('php-sdk/facebook.php');
    
          $config = array(
            'appId' => 'YOUR_APP_ID',
            'secret' => 'YOUR_APP_SECRET',
            'allowSignedRequest' => false // optional but should be set to false for non-canvas apps
          );
    
          $facebook = new Facebook($config);
          $user_id = $facebook->getUser();
        ?>
    
    <html>
      <head></head>
      <body>
    
    
    
        <?php
            if($user_id) {
    
              // We have a user ID, so probably a logged in user.
              // If not, we'll get an exception, which we handle below.
              try {
    
                $user_profile = $facebook->api('/me','GET');
                echo "Name: " . $user_profile['name'];
    
              } catch(FacebookApiException $e) {
                // If the user is logged out, you can have a 
                // user ID even though the access token is invalid.
                // In this case, we'll get an exception, so we'll
                // just ask the user to login again here.
                $login_url = $facebook->getLoginUrl(); 
                echo 'Please <a href="' . $login_url . '">login.</a>';
                error_log($e->getType());
                error_log($e->getMessage());
              }   
            } else {
    
              // No user, print a link for the user to login
              $login_url = $facebook->getLoginUrl();
              echo 'Please <a href="' . $login_url . '">login.</a>';
    
            }
    
          ?>
    
      </body>
    </html>
    

    Once you are logged in use this command to retrieve user data array:

    $user_profile = $facebook->api('/me','GET');
    

    Or you can use this to get user by ID (other user)

    $user_profile = $facebook->api('userID','GET');
    

    Everything you need you can find here:

    https://developers.facebook.com/docs/reference/php/