如何使用php-sdk中的访问令牌获取用户配置文件信息

时间:2014-03-14 10:25:49

标签: php facebook facebook-graph-api facebook-php-sdk facebook-access-token

我想使用已生成的访问令牌获取用户个人资料,如果访问令牌无效,则显示错误。有人可以帮忙吗?我想要PHP代码来处理这个问题。我在等.......

4 个答案:

答案 0 :(得分:15)

由于您已经拥有访问令牌,因此最简单,最简洁的方法是 -

$user_details = "https://graph.facebook.com/me?access_token=" .$access_token;

$response = file_get_contents($user_details);
$response = json_decode($response);
print_r($response);

答案 1 :(得分:2)

首先检查用户是否已登录

 $facebook = new Facebook(array(
 'appId'  => 'AppIDHere',
 'secret' => 'AppSecretHere',
 ));

 // See if there is a user from a cookie
 $user = $facebook->getUser();

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

如果您的访问令牌不为null,请获取用户数据

 <?php if ($user): ?>

 Profile Picture: <img src="https://graph.facebook.com/<?php echo $user; ?>/picture">
 User Id: <?php echo $user_profile['id'];?>
 Name: <?php echo $user_profile['name'];?>
 First Name: <?php echo $user_profile['first_name'];?>
 Last Name: <?php echo $user_profile['last_name'];?>
 Link: <?php echo $user_profile['link'];?>
 Gender: <?php echo $user_profile['gender'];?>
 Username: <?php echo $user_profile['username'];?>

 <?php else: ?>
 <strong>You are not Logged In.</strong>
 <?php endif ?>

用户变量可以从Facebook Graph API

获取

答案 2 :(得分:2)

如果您想获取user_email和其他信息,那么您可以使用此代码....

$facebook = new Facebook(array(
 'appId'  => 'AppIDHere',
 'secret' => 'AppSecretHere',
 ));

 // See if there is a user from a cookie
 $user = $facebook->getUser();

if ($user) {
 try {
// Proceed knowing you have a logged in user who's authenticated.
  $user_profile = $facebook->api('/me?fields=email,name,id,gender');
     } catch (FacebookApiException $e) {
  echo '<pre>'.htmlspecialchars(print_r($e, true)).'</pre>';
  $user = null;
  }
  }

答案 3 :(得分:1)

 I used facebook graph Api 
 $facebook = new Facebook(array('appId'  => $fbconfig['appid'],'secret' =>  
 $fbconfig['secret'],'cookie' => true,));
  $session = $facebook->getUser();
   if($session)
    {
      try{
      $uid = $session;      
                $fbme = $facebook->api('/me');      
                $access_token = $facebook->getAccessToken();

                // FQL : to fetch the email id 
                $fql = "SELECT email FROM user where uid='".$uid."'";  
                $response = $facebook->api(array('method' => 
                'fql.query','query' =>$fql,));  
                $user_email = $response[0][email];

                // Friend COunt.
                $friend_res = $facebook->api('/me/friends');
                $friend_count = count($friend_res[data]);

                //likes
                $likes = $facebook->api('/me/likes');
                $fb_like = $likes[data];

                //  Getting more user personal data 
                $param  =   array(
                        'method'  => 'users.getinfo',
                        'uids'    => $uid,
                        'fields'  => 'name,sex,pic,current_location,profile_url,email,birthday',
                        'callback'=> ''
                    );
                $userInfo   =   $facebook->api($param); 
           }catch(FacebookApiException $e){

        }

    }