Facebook Graph API - 寻找用户的顶级朋友

Bra*_*ire 15 facebook facebook-graph-api

我正在编写一个Android应用程序,它将提取所有用户朋友的列表,以便他们可以在照片中标记它们,但显示一大群朋友的照片而不是列表.因为有些人有500多个朋友,我们都知道他们只是少数(可能是50个),他们通过评论或在照片中标记在Facebook上积极沟通的朋友.我希望能够吸引他们的顶级xxx朋友,因为看起来Facebook在他们的网站上做同样的事情,但我无法在Graph API中找到任何东西来完成这项任务.

任何人有任何指针?

Ram*_*mar 18

另一种方法是,对用户发布的状态消息发出Graph API请求,评论或喜欢他的状态的朋友是与他/她交互最多的朋友,这样做非常简单,你可以用这个:

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

    foreach($statuses['data'] as $status){
    // processing likes array for calculating fanbase. 

            foreach($status['likes']['data'] as $likesData){
                $frid = $likesData['id']; 
                $frname = $likesData['name']; 
                $friendArray[$frid] = $frname;
            }

         foreach($status['comments']['data'] as $comArray){
         // processing comments array for calculating fanbase
                    $frid = $comArray['from']['id'];
                    $frname = $comArray['from']['name'];
    }
}
Run Code Online (Sandbox Code Playgroud)

根据您的选择保留计数器,它将完成.


小智 14

我想这样做而不需要额外/扩展权限.我找到了一个相当不错的近似我的需求是用户FQL表中mutual_friend_count字段.

所以我用过:

$params = array('method' => 'fql.query',
                'query' => 'SELECT uid, pic_square, name 
                 FROM user 
                 WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me()) 
                 ORDER BY mutual_friend_count DESC
Run Code Online (Sandbox Code Playgroud)

然后使用PHP SDK解决这个问题

$friend_array = $facebook->api($params);
Run Code Online (Sandbox Code Playgroud)