使用Facebook PHP api获取用户信息?

时间:2011-08-01 03:07:36

标签: php facebook

我刚设法连接到facebook PHP api。 Facebook API教程看起来非常糟糕,或者至少组织得很差。

我意识到我可以使用<?php print_r($user_profile[name]); ?>获取登录用户的名字,因为它预先设置为$user_profile = $facebook->api('/me');。如何知道他的UID,如何打印未登录的其他用户名,例如'2222'

如何获取用户信息,特别是名称和UID?

由于

3 个答案:

答案 0 :(得分:1)

您想要获取哪些用户?您可以使用/ me获取当前用户。在使用Facebook PHP API之前,您需要了解Facebook graph api。它解释了有关Facebook api访问URL的所有信息。因此,您可以在Facebook PHP SDK中调用图形URL。

您可以查看

中的示例源代码

https://github.com/facebook/php-sdk/

require './facebook.php';

$facebook = new Facebook(array(
  'appId'  => 'YOUR_APP_ID',
  'secret' => 'YOUR_APP_SECRET',
));

// Get User ID
$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) {
    error_log($e);
    $user = null;
  }
}

答案 1 :(得分:0)

 <script>
          FB.init({appId: <?php echo FACEBOOK_APP_ID;?>, status: true, cookie: true, xfbml: true});
          FB.Event.subscribe('auth.logout', function(response) {});
          FB.Event.subscribe('auth.sessionChange', function(response) { 
            if (response.session) { 

              FB.api('/me', function(response) {             
                 if(response.id!='undefined')
                 {  
                    window.location='Fbaccess.php?first_name='+response.first_name+'&last_name='+response.last_name+'&email='+response.email;
                 }
                 else
                 {  
                    window.location='login.php';
                 }
                }); 

            } else {

              // The user has logged out, and the cookie has been cleared
            }
          });

        </script>

php code ....

<?php 
$cookie = get_facebook_cookie(FACEBOOK_APP_ID, FACEBOOK_SECRET);        
if(isset($cookie))
{
    $first_name = json_decode(@file_get_contents('https://graph.facebook.com/me?access_token=' .$cookie['access_token']))->first_name;
    $last_name = json_decode(@file_get_contents('https://graph.facebook.com/me?access_token=' .$cookie['access_token']))->last_name;
} 
?>


function get_facebook_cookie($app_id, $application_secret) 
{
  $args = array();
  parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args);
  ksort($args);
  $payload = '';
  foreach ($args as $key => $value) 
  {
    if ($key != 'sig') {
      $payload .= $key . '=' . $value;
    }
  }
  if (md5($payload . $application_secret) != $args['sig']) {
    return null;
  }
  return $args;
}

我认为这些代码可供您获取Facebook名称和用户ID .... 在这个网址上你会找到完整的回复

https://graph.facebook.com/me?access_token='。$ cookie ['access_token']

答案 2 :(得分:0)

在你的api电话中,将'/ me'替换为'/ 2222'