如何通过Facebook获取用户的朋友列表?

时间:2011-03-22 05:15:06

标签: php facebook

假设我是让用户使用facebook登录我的网站,通过以下网址:

http://www.facebook.com/dialog/oauth?client_id=$appId&
redirect_uri=$return&scope=user_birthday,email,user_location

有没有办法让我获得所有用户的朋友列表并显示图片(如果有的话)?我可以使用哪种图形API函数来执行此操作?

4 个答案:

答案 0 :(得分:3)

您必须对https://graph.facebook.com/me/friends

执行查询

示例在这里:http://developers.facebook.com/docs/reference/api/

只要您拥有用户ID,就可以将<img src="" />指向http://graph.facebook.com/<user_id>/picture网址。

答案 1 :(得分:1)

确保您已经在Facebook上设置了应用程序,因为您需要使用API​​密钥才能使用官方Facebook apis完成大部分操作。来自Joey Rivera的Here是一个很好的参考,如果你仍然需要这样做的话。只需按照第一部分设置应用程序即可完成所有操作。

API函数为FB.api("/me/friends") (Source)。它返回一个JSON对象数组,每个朋友都有Facebook ID和Name。如果您想获取图片,则需要查询列表中的每个朋友,等同于FB.api("/me/picture/"。您可以使用FQL执行此操作,嵌入在朋友列表中的for语句中。或者,对[Friend Facebook id]/picture进行简单api调用的类似方法会在公开提供时提供给您。

您可能仍需要明确询问图片文件,因为它只会为您提供文件名。

这假定您的应用程序的Javascript实现。

答案 2 :(得分:1)

经过适当的Facebook身份验证后,用户才能登录.....

您可以使用fql查询访问他的朋友列表....

以下对我来说很好......

<?php
    try
    {
        $fql    =   "SELECT uid, name, pic_square FROM user WHERE uid = me()
                     OR uid IN (SELECT uid2 FROM friend WHERE uid1 = me())";
        $param  =   array(
            'method'    => 'fql.query',
            'query'     => $fql,
            'callback'  => ''
        );
        $fqlResult   =   $facebook->api($param);

    }
    catch(Exception $o)
    {
        d($o);
    }
    ?>

答案 3 :(得分:0)

试试这个:

http://graph.facebook.com/<user_id>/picture

例如:

http://graph.facebook.com/4/picture

这将显示标记照片