获取所有喜欢的页面按一般喜欢排序

Get all liked pages sorted by general likes

我正在尝试让 Pages 被用户点赞,按每个页面的点赞数量降序排列... 使用 Graph API 很难得到这个,因为我必须像这样获取请求:

let request = FBSDKGraphRequest(graphPath: "me/likes" parameters: nil)

并在内部递归调用它,因为该请求将对响应进行分页。在我得到所有东西后,我必须在本地对其进行排序,这就是我得到它的方式
恕我直言,这有点 矫枉过正 所以我研究了一种实现相同目标但使用 FQL 的方法,这就是查询:

SELECT name, fan_count FROM page WHERE  page_id IN (SELECT page_id FROM page_fan WHERE uid = me())  ORDER BY fan_count DESC

起初我对此很满意,但经过一些测试后,我的朋友告诉我他看不到梅西在他的名单上。 所以我想知道这个FQL查询结果中没有显示所有页面的原因是什么?

FQL 已弃用,仅适用于使用 Graph v2.0 的旧应用程序 API。截至目前,唯一的方法是递归获取所有页面并自行进行排序。

您不必为此单独提出请求。

Graph API有一个叫做“字段扩展”的功能,可以让你一次指定你想要来自多个“级别”的数据。 https://developers.facebook.com/docs/graph-api/using-graph-api/v2.4#fieldexpansion

所以请求

/me/likes?fields=id,name,likes

将为您提供每个用户喜欢的页面的 ID、名称和喜欢数量。

(您仍然需要点击分页链接,收集所有结果并在之后进行排序,因为 API 目前不允许排序。)