2
votes

i've started dabbling with the facebook login demo code and i was just wondering how to extract individual information from my code such as display pic, name, first-name, last-name, username and henceforth.

currently the demo shows this:

Your User Object (/me)

    Array
    (
        [id] => 647445630
        [name] => John Molanza
        [first_name] => John
        [last_name] => Molanza
        [link] => http://www.facebook.com/johnmolanza
        [username] => johnmolanza
        [gender] => male
        [timezone] => 1
        [locale] => en_GB
        [verified] => 1
        [updated_time] => 2011-05-24T03:12:09+0000
    )

alongside my display picture and other things. but how do you display each piece of information individually for example [last_name] or [first_name] instead of everything at once.

here is the code i am using below - thanking you in advance!

//config
include "resources/Connections/kite.php";

require 'resources/facebook/src/facebook.php';

$facebook = new Facebook(array(
  'appId'  => $appid_kite,
  'secret' => $secret_kite,
));

// Get User ID
$user = $facebook->getUser();

// We may or may not have this data based on whether the user is

logged in. // // If we have a $user id here, it means we know the user is logged into // Facebook, but we don't know if the access token is valid. An access // token is invalid if the user logged out of Facebook.

if ($user) {
  try {
    // Proceed knowing you have a logged in user who's authenticated.
    $user_profile = $facebook->api('/me');
  } catch (FacebookApiException $e) {
    error_log($e);
    $user = null;
  }
}

// Login or logout url will be needed depending on current user

state. if ($user) { $logoutUrl = $facebook->getLogoutUrl(); } else { $loginUrl = $facebook->getLoginUrl(); } // This call will always work since we are fetching public data. $naitik = $facebook->api('/naitik');

?>
<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
  <head>
    <title>php-sdk</title>
    <style>
      body {
        font-family: 'Lucida Grande', Verdana, Arial, sans-serif;
      }
      h1 a {
        text-decoration: none;
        color: #3b5998;
      }
      h1 a:hover {
        text-decoration: underline;
      }
    </style>
  </head>
  <body>
    <h1>php-sdk</h1>

    <?php if ($user): ?>
      <a href="<?php echo $logoutUrl; ?>">Logout</a>
    <?php else: ?>
      <div>
        Login using OAuth 2.0 handled by the PHP SDK:
        <a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
      </div>
    <?php endif ?>

    <h3>PHP Session</h3>
    <pre><?php print_r($_SESSION); ?></pre>

    <?php if ($user): ?>
      <h3>You</h3>
      <img src="https://graph.facebook.com/<?php

echo $user; ?>/picture">

      <h3>Your User Object (/me)</h3>
      <pre><?php print_r($user_profile); ?></pre>
    <?php else: ?>
      <strong><em>You are not Connected.</em></strong>
    <?php endif ?>

    <h3>Public profile of Naitik</h3>
    <img src="https://graph.facebook.com/naitik/picture">
    <?php echo $naitik['name']; ?>
  </body>
</html>
1

1 Answers

2
votes

You've got the array, so you can get each value by key. Try this instead of print_r($user_profile)

echo $user_profile['first_name']; //Prints John Molanza
echo '<a href="'.$user_profile['link'].'">Go to my profile</a>';