0

我在尝试着:

从具有好友信息的用户那里检索好友列表:

  • 地点
  • 教育
  • 姓名
  • 个人资料图片

问题是给定的标准权限只有朋友头像和姓名。我用它来获取其他信息:

$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 调用(请注意,我创建 $permissions 只是为了进行测试以确保我得到它,并且它们正在显示)。

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;
    }
}
4

1 回答 1

0

您的 API 调用/me/friends不正确。您需要执行以下操作:

$friends = $facebook->api('me/friends?fields=birthday,location,about...');

您需要在 API 调用中添加所需的额外字段作为参数。我在上面的示例中添加了一些,但您需要添加其余的。

于 2013-09-03T14:25:27.773 回答