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(); 

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

我得到这个结果:

警告:session_start() [function.session-start]:无法发送会话缓存限制器 - 标头已在 /home/kurokmed/public_html/fb 中发送(输出开始于 /home/kurokmed/public_html/fb/index.php:2) /facebook-php-sdk-master/src/facebook.php 第 49 行 Facebook 好友

你好 !您的 id : 0. 好友列表:

致命错误:未捕获的 OAuthException:验证应用程序时出错。由于系统错误,无法获取应用程序信息。在第 1254 行扔进 /home/kurokmed/public_html/fb/facebook-php-sdk-master/src/base_facebook.php

请告诉我我做错了什么

4

2 回答 2

1

必须在向浏览器进行任何输出之前调用发送/修改 HTTP 标头的函数,否则您将收到错误:

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

此错误将告诉您哪个文件导致问题以及在哪一行。

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

于 2013-05-16T10:54:03.817 回答
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>';
    }
?>
于 2014-01-02T14:59:55.690 回答