FQL,搜索非朋友的人并由共同的朋友排序

时间:2012-05-14 16:56:14

标签: facebook-fql

我会在名称中找到一个模式的Facebook用户(任何用户,而不仅仅是我的朋友或特定用户的朋友),如下所示:

SELECT first_name,uid FROM user WHERE contains('pete')

这将返回一个名字包含“pete”的人数组(即“peter”)。这个数字非常高,所以结果当然会被截断。我想抓住这个集合(在服务器端截断之前)与我有最多共同的朋友(或任意用户ID)。但是,发布

SELECT first_name,uid FROM user WHERE contains('pete') AND mutual_friend_count > 1

给出并设置空集(并且没有错误)。我认为服务器在应用后一种选择之前会截断,因为正常的SQL会发生,出于性能原因(或者我在文档中遗漏的明确限制)。

我尝试检索用户标识的朋友的所有朋友,然后选择名称,进行了第二次尝试。但是,不允许检索朋友的朋友(并且技术上很难,因为有些朋友会隐藏他们的朋友列表,这会破坏查询。)

我看不到其他方法来实现我的目标......有没有? (我的意思是:给定用户ID,搜索共享朋友数最多的用户)。

2 个答案:

答案 0 :(得分:0)

你最好的选择,因为没有FQL解决方案,当然是开始建立你自己的Facebook最佳实践和政策的数据库。这样您就可以构建数据。通过设置Facebook的实时更新API(https://developers.facebook.com/docs/reference/api/realtime/)来捕获新的友谊时,数据可以保持最新状态。

答案 1 :(得分:0)

我刚用“order by mutual_friend_count desc”尝试了它并且它有效。所以查询需要是:

  

SELECT first_name,uid FROM user WHERE contains('pete')order by mutual_friend_count desc