facebook图表api评论列表排序,如'orderby = desc'?

mas*_*ast 13 api facebook facebook-graph-api facebook-comments

我使用graph api来获取图片的注释,但我想首先通过创建时间对结果进行排序,然后返回到最新数据.类似于sql语句'order by create_time desc',我不知道是否有这样的参数.

目前用于抵消和限制访问最新数据,但也知道评论总数,

pagesize = 25;
offset = comments.count - pagesize;
limit = 25;
Run Code Online (Sandbox Code Playgroud)

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

下一页:

offset -= 25
Run Code Online (Sandbox Code Playgroud)

但是注释数量有时并不准确

并且返回的请求URL的结果有时不匹配

是否有非常好的解决方案

或者我使用了错误的方式('限制'和'偏移'参数)!!!


谢谢您的回答.

"Graphics API"存在缓存?

我发布了一条消息和46条comments.requests url,设置参数:

偏移= 0&极限= 1

然后它应该返回到最后一个注释(最新的一个),实际返回到注释的中间,我测试了几次,设置了偏移和限制.根据返回的结果,中间的是最新的评论

如果我设置的限制值大于'comment.count',则返回的数据全部,官方网站和facebook一致

因为缓存原因?

再次感谢〜

cpi*_*lko 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]
Run Code Online (Sandbox Code Playgroud)

您可能会发现[N]每次都没有返回评论,因为Facebook会运行查询过滤掉access_token所有者看不到的项目.您可以上升LIMIT并过滤掉所返回的任何多余结果,或者如果您正在使用用户,您可以添加到该子句以保证,如果它们存在,则返回当前用户可见的帖子.access_tokenAND can_like = TRUEWHERE[N]


Rob*_*bin 3

Graph API 首先返回最新的对象。

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

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

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

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

检索下一个“X”评论(逐页)

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

希望答案对您来说足够清楚。

  • Graph API 按最新优先返回项目的说法是 SimplyNotTrue™,至少在照片评论的情况下是如此,在其他一些情况下也是如此。这些总是按最旧的顺序返回,并且“直到”修饰符被完全忽略。 (9认同)
  • 从 Graph API 检索照片也会返回最早的优先。 (2认同)