我使用graph 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条评论。请求网址,设置参数:
偏移= 0&安培;极限= 1
然后它应该返回到最后一条评论(最新一条),实际返回到评论中间,我测试了几次,设置了 抵消和限制。根据返回的结果,中间的结果是 最新评论
如果我设置的限制值大于'comment.count',则返回的数据全部,官方网站和facebook一致
因为缓存原因?
再次感谢〜
答案 0 :(得分: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
,则可以将AND can_like = TRUE
添加到WHERE
子句中,以确保它们存在(如果存在) ,返回当前用户可见的[N]
个帖子。
答案 1 :(得分:3)
Graph API首先返回最新的对象。
Facebook提供2个关键字来过滤提取的数据。
所以要检索为对象发布的最新“x”评论
?https://graph.facebook.com/ [OBJECTID]极限= [X]&安培;偏移量= 0
检索下一个“X”注释(页面方式)
?https://graph.facebook.com/ [OBJECTID]极限= [X]&安培;偏移量= [X *您做生意]
希望答案对你来说足够清楚。