我想:
使用朋友信息从用户检索朋友列表:
问题是给出的标准权限只有朋友个人资料图片和名称。我用它来获取其他信息:
$params = array(
'scope' => 'email, friends_likes, user_about_me, friends_about_me, friends_location, friends_website, friends_work_history, friends_education_history'
);
$loginUrl = $facebook->getLoginUrl($params);
}
所以现在当我登录我的页面时,Facebook会问我是否愿意将这些权限授予应用程序,这是一个好兆头。
问题是我仍然无法弄清楚如何获取信息。当我尝试做的时候
print_r($friends);
或
print_r($friends["data");
我仍然只是得到一个名字和ID的数组。
为什么我没有看到额外的信息?
这不是完整的代码,但很多(大多数来自Facebook GitHub主帐户的example.php):
<?php
if ($user):
echo "Name: " . $user_profile['name']; ?> <br />
<?php echo "Location: " . $user_profile['location']['name']; ?> <br />
<?php echo "Bio: " . $user_profile['bio']; ?> <br />
<?php
foreach($user_profile['work'] as $work) {
echo "Work: " . $work['employer']['name'];?><br />
<?php echo "Position: " . $work['position']['name'];?><br />
<?php
}
?>
<img src="https://graph.facebook.com/<?php echo $user; ?>/picture?type=large">
<h3>Your User Object (/me)</h3>
<pre><?php
print_r($friends);
?></pre>
<?php
echo '<ul>';
foreach ($friends["data"] as $value) {
echo '<li>';
echo '<div class="pic">';
echo '<img src="https://graph.facebook.com/' . $value["id"] . '/picture?type=large"/>';
echo '</div>';
echo '<div class="picName">'.$value["name"].'</div>';
echo '<div class="location">'.$value["location"]["name"];
echo '<div class="bio">'.$value["bio"];
echo '</div>';
echo '</li>';
}
echo '</ul>';
?>
API调用(注意我只是为了测试而设置$权限,以确保我得到它,并且它们正在显示)。
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
$permissions = $facebook->api('/me/permissions');
$friends = $facebook->api('/me/friends');
}
catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
答案 0 :(得分:0)
您对/me/friends
的API调用不正确。您需要执行以下操作:
$friends = $facebook->api('me/friends?fields=birthday,location,about...');
您需要在API调用中添加您需要的额外字段作为参数。我在上面的示例中添加了一些内容,但您需要添加剩余的内容。