如何在 php-sdk 中使用访问令牌获取用户个人资料信息

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/22402343/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-25 04:54:05  来源:igfitidea点击:

How to get user profile info using access token in php-sdk

phpfacebookfacebook-graph-apifacebook-php-sdkfacebook-access-token

提问by Samnad Sainulabdeen

I want to get user profile using access token that i have already generated, and if the access token is invalid it shoud display error. anyone can help to do this ? i want php code to handle this. i am waiting....

我想使用我已经生成的访问令牌获取用户配置文件,如果访问令牌无效,它应该显示错误。任何人都可以帮助做到这一点?我想要 php 代码来处理这个。我在等待....

回答by Sahil Mittal

Since you already have the access token, the simplest and clean way would be-

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

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

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

回答by mutiemule

First check if the user is logged in

首先检查用户是否登录

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

If your access token is not null, fetch user data

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

 <?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 ?>

The user variables can be got from Facebook Graph API

用户变量可以从Facebook Graph API 获取

回答by Aryan Rajput

If You want to get user_email and other info then you can use this code....

如果您想获取 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;
  }
  }

回答by Pradeep Jadhav

 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){

        }

    }