0

我试图在一个页面上获得前 10 个喜欢的帖子。我的查询是:

select message,likes from stream where
source_id=<pageid> and is_published=1
limit 10

这是返回的数据结构:

  "message": "message",
  "likes": {
    "href": "https://www.facebook.com/browse/likes/?id=<id>",
    "count": <likecount>, <- THIS IS THE FIELD I WANNA ORDER BY
    "sample": [
    ],
    "friends": [
    ],
    "user_likes": false,
    "can_like": true

如何使用 order by 子句按喜欢排序:计数字段?

4

1 回答 1

2

您需要做的就是在查询部分ORDER BY likes.count之后WHERE和查询部分之前添加LIMIT

使用该stream表,您可能需要升级LIMIT以获得所需的结果,然后在脚本中截断返回的结果。流表在设计上有一些严重的限制:

  • 如果您允许其他人在您的页面上发布帖子,则某些用户的隐私设置将被配置,因此 API 不会返回他们的帖子。Facebook在完成对 FQL 的评估会过滤这些内容,因此当您请求 10 个帖子时,您实际上很少会收到 10 个帖子。

  • streamFacebook 限制了它在表格中搜索的历史记录数量。我发现如果您想查看超过 1 个月大的帖子,您需要LIMIT至少 100 个。我一直很难用stream表格检索超过 3 个月大的帖子。

于 2013-04-04T13:04:32.497 回答