FQL:获得共同的朋友可以减少查询

时间:2011-01-08 12:14:25

标签: php facebook api facebook-fql

我正在制作一个社交应用程序,从Facebook获取数据并以一种奇特的方式显示它,应用程序首先抓住10个随机朋友,然后(尝试)抓住登录用户和10个朋友中的每一个之间的共同朋友

使用FQL获取10位朋友非常容易,但是在没有应用程序进行2000 API调用的情况下找到共同朋友时遇到了重大问题!

这种方式有效

function GetMutualFriendsFor($id)
    {
        // Queries and returns results for mutual friends between user and id
        $param  =   array(
                            'method'  => 'friends.getMutualFriends',
                            'source_uid'    => $this->_user['id'],
                            'target_uid'  => $id,
                            'callback'=> ''
                        );
        $mutualFriends = $this->_instance->api($param);

    }

不幸的是,运行此功能一次需要大约3分钟..将其乘以10次,然后在开始编写脚本后开始做午餐!

我正在考虑使用FQL这样做,因为它更快,并且返回我想要的数据量(uid,name)我尝试过

    $query = 'SELECT uid1 FROM friend WHERE uid2=me() AND uid1 IN (SELECT uid2 FROM friend WHERE uid1=' . $id .') LIMIT 5';

但PHP抛出错误:无法查找1523223065的所有朋友。只能查找已登录用户(665044728)或具有相应权限的登录用户的朋友

有人知道该怎么办? PS:我已经在stackoverflow上看到了关于此的所有其他帖子,遗憾的是没有任何成功:(

非常感谢!!

2 个答案:

答案 0 :(得分:1)

据我所知,你不能再通过FQL这样做了。您的查询很好,它曾经用了一段时间。但我认为facebook改变了一些事情......

-Roozbeh

答案 1 :(得分:0)

是的!在任何情况下,我都认为这是唯一的方法。我鼓励每个人都使用FBJS进行任何查询,因为它的速度非常快! 2分钟比5秒!

谢谢你!