我正在编写一个应用程序,它将打印用户的所有朋友。
<?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。在/home/kurokmed/public_html/fb/index.php中,第49行,无法发送会话缓存限制器- headers已经发送(输出开始于/home/kurokmed/public_html/fb/index.php:2)Facebook上的朋友
你好!您的id: 0。好友列表:
致命错误:Uncaught oautheexception:验证应用程序出错。由于系统错误,无法获取应用程序信息。在/home/kurokmed/public_html/fb/facebook-php-sdk-master/src/base_facebook.php第1254行被抛出
请告诉我我做错了什么
发送/修改HTTP报头的函数必须在向浏览器输出任何内容之前调用,否则你会得到错误:
Warning: Cannot modify header information - headers already sent (output started at file:line)
这个错误会告诉你是哪个文件引起了问题,在哪一行。
你发布的第二个错误-检查你的facebook应用程序设置
<?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>';
}
?>