Facebook图形API评论列表排序,例如 'orderby=desc'?

13

我使用图形API获取图片的评论,但我希望首先按创建时间对结果进行排序,然后返回最新的数据。类似于SQL语句“order by create_time desc”,我不知道是否有这样的参数。

目前使用偏移量和限制访问最新数据,同时也知道评论的总数,

pagesize = 25;
offset = comments.count - pagesize;
limit = 25;

url = "https://graph.facebook.com/" + object_id + "/comments?access_token=" + access_token + "&limit=" + limit + "&offset=" + limit;

下一页:

offset -= 25

有时候数字评论数量不准确,而且请求的URL返回结果有时也不匹配。

是否有很好的解决方案?

或者我使用了错误的方式('limit' 和 'offset' 参数)!!!


谢谢您的回答。

"Graphics API" 是否存在缓存?

我发布了一条消息和46条评论。设置请求URL参数:

offset=0&limit=1

那么应该返回最后一个评论(最新的评论),但实际上返回的是中间一个评论,我尝试过多次设置offset和limit,根据返回的结果,中间的那个是最新的评论。

如果我将limit值设为大于'comment.count',则返回的数据是全部的,这与官网和Facebook一致。

这是因为缓存原因吗?

再次感谢~


为什么不使用FQL呢?在这种情况下似乎更加灵活。 - Anatoly Lubarsky
fql~ SELECT object_id, text, time FROM comment WHERE object_id = 'object_id' order by time desc 这确实非常灵活,但是“图形 API”不支持吗?我只能使用它。‘fql’是“图形 API”吗?如果是那就太好了! - mast
图形 API 没有 WHERE 和 ORDER BY,所以在您的情况下,FQL 似乎更灵活。FQL 是图形的一个特性,因为它可以对图形对象和连接执行查询。 - Anatoly Lubarsky
这变得很重要,因为FQL似乎已经过时了。https://developers.facebook.com/docs/reference/fql/ - Josiah
2个回答

5

@dbau - 你最好还是使用FQL。根据我的经验,除非你进行非常简单的调用,否则通过Graph API调用获得的结果很难控制。

为什么不想使用FQL?FQL是Graph API的一个端点。仍有一些数据只能通过FQL返回。

这将为您提供所需的结果。查询需要进行URL编码。我将其保留为纯文本以便于理解。

 https://graph.facebook.com/fql?access_token=[TOKEN]&q=
    SELECT id, fromid, text, time, likes, user_likes FROM comment
      WHERE object_id = [OBJECT_ID] ORDER BY time DESC LIMIT 0,[N]

您可能会发现,每次查询时并不会返回[N]条评论,因为Facebook会在查询运行后过滤掉那些对于access_token所有者不可见的项目。您可以增加LIMIT并过滤掉多余的结果,或者如果您正在使用用户access_token,您可以在WHERE子句中添加AND can_like = TRUE,以确保如果存在,则返回当前用户可见的[N]个帖子。


3

Graph API返回最新的对象。

Facebook提供了两个关键字来过滤获取的数据。

  1. Limit:返回“limit”数量的最新记录
  2. Offset:从偏移位置返回“limit”数量的记录

因此,要检索对象发布的最新的“x”条评论

https://graph.facebook.com/[OBJECTID]?limit=[X]&offset=0

要按页面检索下一个“X”条评论

https://graph.facebook.com/[OBJECTID]?limit=[X]&offset=[X*PAGENo]

希望答案对您足够清楚。


谢谢你的回答。 "图形 API" 中是否存在缓存? - mast
1
这还是现状吗?offset=0 似乎指的是最早的评论,而 offset=1...n 则为我返回了更晚的评论! - dbau
请查看我的更新答案。Facebook GRAPH API 默认按最新记录检索,普通的 Facebook 网站也是如此。因此,偏移量为零会检索最新的“LIMIT”条记录。 - Robin
有没有一种方法可以反转顺序,以便首先获取最旧的那些? - chacham15
9
Graph API 返回的项目最新的说法在评论照片的情况下是不正确的,可能在其他情况下也是如此。这些评论总是以最旧的为先返回,而“until”限定符被坚决忽略。 - Szczepan Hołyszewski
2
从Graph API检索照片也会按最早的先返回。 - Zach Lysobey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接