Facebook - 结交朋友的朋友

时间:2011-08-19 07:30:46

标签: php facebook facebook-graph-api

我正在尝试创建一个记录用户的脚本 - 检索朋友列表并通过这些朋友循环获取他们的好友列表。意味着用户朋友的朋友。我已经在某处看过这是不可能的,但是如果我和我的用户一起登录facebook.com并浏览我的一个朋友,我可以很容易地看到他的朋友列表?你能帮忙澄清一下吗?

我的代码:

    $friends = $facebook->api('/me/friends');

foreach ($friends["data"] as $friend) {

    try {
        $friendsfriends = $facebook->api('/'.$friend["id"].'/friends?fields=name,hometown,location,picture');
    } catch(Exception $e) {
        $friendsfriends = null;
    }

    print '<pre>';
    print var_dump($friendsfriends);
    print '</pre>';
}

其中一些错误说我无法查看用户朋友。

3 个答案:

答案 0 :(得分:7)

您要做的事情是不可能的。当用户授权并正在使用您的应用程序时,扩展权限集(请参阅Facebook Permissions)明确适用于该用户。因此,如果您拥有阅读好友数据的扩展权限,则只能获取与当前用户相关的好友数据 - 因为这些是您拥有的权限,并且您没有有效的访问权限,对于朋友而言,要去进一步。如果你想进一步遍历图表,那些朋友必须已经授权你的应用程序,你需要一个离线访问令牌来获取他们的朋友数据。

主Facebook网站上有许多功能,这些功能无法通过任何Facebook API获得。这可能令人沮丧,但您必须使用可用的功能。

答案 1 :(得分:1)

这是不可能的,我这样做了,在一些查询阻止你的脚本后,用正则表达式+ php和Facebook获取朋友页面。

答案 2 :(得分:0)

简单地说:这是不可能的。您无法确定您是否拥有该用户的朋友所需的权限才能获得他或她的好友列表。我也不确定api通话/userid/friends是否会起作用(可能仅适用于/me/friends)。

一种可能性是将用户友好列表保存在您的数据库中并自己连接这些友谊。