1

我试图计算朋友朋友的平均数量

例如,如果用户有 4 个朋友:

  1. 朋友 A 和 5 个朋友
  2. 朋友 B 和 10 个朋友
  3. 朋友 C 和 15 个朋友
  4. 朋友 D 与未知数量的朋友(假设此信息对用户不可见)

结果会

  • 平均好友数 = 10
  • 计算的朋友 = 3
  • 好友总数 = 4;

为此使用 PHP 和 FQL 和 Graph API

问题是我认为我发送的 fql 批处理请求是 2 大,我没有得到回应

如果有人知道更好的/工作方法来做到这一点,请帮忙

我的代码片段:

        //get average of friends friends
        $friends=$facebook->api('/me?fields=friends');
        $friends=$friends['friends'];
        if (isset($friends)){
            //now we have array of friends
            $friends = $friends['data'];
            //prepare the query
            $queries = array();
            foreach ($friends as $friend){
                $friendId = $friend['id'];
                $query1="SELECT friend_count FROM user WHERE uid = $friendId";
                $newArray = array('method'=>'GET', 'relative_url'=>'method/fql.query?query='.str_replace(' ','+',$query1));
                $queries[]=$newArray;
            }
            //send batch request
            $batchResponse = $facebook->api('/?batch='.json_encode($queries), 'POST');

            //go over all responses get the amount of friends

            var_dump ($batchResponse); //this is null ... think the request fails beacuse of its size
4

1 回答 1

3

无需对用户的每个朋友进行批量请求,您可以使用以下嵌套查询来执行相同的操作,

SELECT friend_count FROM user WHERE uid in (SELECT uid2 from friend where uid1=me())
于 2013-06-07T12:44:06.820 回答