2013-05-16 85 views
1

我正在写一个应用程序,将打印所有的用户的朋友。Facebook - 获取朋友列表在php

<?php 
$api_key = 'xxxxxxxxxx'; 
$secret = 'xxxxxxxxxxxxxxxxx'; 

include_once './facebook-php-sdk-master/src/facebook.php'; 

$facebook = new Facebook($api_key, $secret); 
$user = $facebook->getUser(); 

?> 
<h1>Facebook friends</h1> 
Hello <fb:name uid='<?php echo $user; ?>' useyou='false' possessive='true' />! <br> 
Your id : <?php echo $user; ?>. 

Friends List:<br> 
<? 
$friends = $facebook->api('/me/friends'); 

?> 

<ul> 
<? 
foreach($friends as $friend){ 
    echo "<li><fb:name uid=\"$friend\" useyou=\"false\"></li>"; 
} 
?> 
</ul> 

我得到这个结果为:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/kurokmed/public_html/fb/index.php:2) in /home/kurokmed/public_html/fb/facebook-php-sdk-master/src/facebook.php on line 49 Facebook friends

您好! 您的ID:0好友列表:

Fatal error: Uncaught OAuthException: Error validating application. Cannot get application info due to a system error. thrown in /home/kurokmed/public_html/fb/facebook-php-sdk-master/src/base_facebook.php on line 1254

请告诉我,我在做什么是发送/修改HTTP头必须在调用之前作出的任何输出到浏览器,否则你错了

+0

尝试调用的朋友$ = $ facebook-> API( '/ ME /朋友/')呼应东西之前,看看会发生什么... – Loupax

+0

$用户为0表示用户尚未也会记录。否则它会打印出facebook用户的用户名。 –

回答

1

功能”我会得到错误:

Warning: Cannot modify header information - headers already sent (output started at file:line) 

这个错误会告诉你哪个文件导致问题,并在哪一行。

您发布的第二个错误 - 请检查您的Facebook应用设置。

1
<?php 
$api_key = 'xxxxxxxxxx'; 
$secret = 'xxxxxxxxxxxxxxxxx'; 

include_once 'facebook-php-sdk-master/src/facebook.php'; 

$facebook = new Facebook($api_key, $secret); 
$user = $facebook->getUser(); 

    if ($user) { 
     $user_profile = $facebook->api('/me'); 
     $friends = $facebook->api('/me/friends'); 

     echo '<ul>'; 
     foreach ($friends["data"] as $value) { 
      echo '<li>'; 
      echo '<div class="pic">'; 
      echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture"/>'; 
      echo '</div>'; 
      echo '<div class="picName">'.$value["name"].'</div>'; 
      echo '</li>'; 
     } 
     echo '</ul>'; 
    } 
?> 
+0

谢谢。我注意到结果是分页的,所以需要进一步的操作来获得下一页的结果。 – crafter