从Facebook API检索好友数据时出现问题


Trouble retrieving friends data from Facebook API

我正在尝试:

检索用户的好友列表和好友信息:

  • 位置
  • 教育
  • 名称
  • 个人资料图片

问题是,给定的标准权限只有朋友的个人资料图片和姓名。我用这个来获取其他信息:

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

您对/me/friends的API调用不正确。你需要做一些类似的事情:

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

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