我会在名称中找到一个模式的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,搜索共享朋友数最多的用户)。
答案 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