使用facebook fql查询获取所有帖子评论限制

时间:2013-05-01 22:06:55

标签: javascript facebook jquery facebook-graph-api facebook-fql

我一直在尝试使用Fql查询显示post.at的所有评论首先我显示2个帖子然后当'显示更多评论'点击我显示接下来50条评论,这样它继续。当'显示更多评论'时我通过ajax调用graph api执行以下操作 -

SELECT text,post_id  FROM comment  WHERE post_id=post_id limit 50

但是当我第一次点击“显示更多评论”时,它会显示52条评论,然后当我再次点击它会显示大约102条评论。但是对于下一次点击,152条评论未显示。大约有102条评论。

我的目标 -

首先点击“显示更多评论”=显示从第一条评论开始的52条评论(限制值= 52我在查询中指定)

第二次点击=显示从第一条评论开始的102条评论(限制值= 102)

第3次点击=显示从第一条评论开始的152条评论(限制值= 152) ......继续

所以我无法实现这一点。我真的尝试了很多方法使用偏移。很多问题。还有facebook错误吗?请尽快帮助。

1 个答案:

答案 0 :(得分:5)

您应该尝试使用光标分页,建议按照https://developers.facebook.com/docs/reference/api/pagination/

中的说明进行操作
  

光标分页下的返回结果更符合限制   请求,即使隐藏了您没有的任何记录   查看权限(例如,如果您请求10条记录,但没有   权限可以查看其中3条记录,另外还有3条记录   透明地拉动,以便拉出完整的10条记录。)

post_id_cursor的示例:

SELECT text, post_id, post_id_cursor FROM comment WHERE post_id='22707976849_10151395520781850' ORDER BY time DESC limit 50

您获得最后评论的post_id_cursor,然后使用> post_id_cursor 符号导航下一页

SELECT text, post_id, post_id_cursor FROM comment WHERE post_id='22707976849_10151395520781850' AND  post_id_cursor>'Mjg3NA==' ORDER BY time DESC limit 50

object_id_cursor的示例相同:

SELECT text, post_id, object_id_cursor FROM comment WHERE object_id='10151395520696850' ORDER BY time DESC limit 50

SELECT text, post_id, time, object_id_cursor FROM comment WHERE object_id='10151395520696850' AND object_id_cursor>'Mjg3NA==' ORDER BY time DESC limit 50
  

<强>更新

     

确保您已启用“2013年7月重大更改:”字段   在您的应用高级设置,   https://developers.facebook.com/apps/YOUR_APP_ID/advanced。更多信息在   https://developers.facebook.com/roadmap

     

特定用户获取Feed的示例:

     

https://developers.facebook.com/tools/explorer?fql=%7B%22query1%22%3A%22SELECT%20post_id%2C%20actor_id%2C%20created_time%2C%20message%20FROM%20stream%20WHERE%20source_id%3D611693239%20AND%20created_time%3C%3Dnow()%20LIMIT%2050%20%22%2C%22query2%22%3A%22SELECT%20post_id%2C%20id%2C%20fromid%2C%20time%2C%20text%2C%20user_likes%2C%20likes%20FROM%20comment%20WHERE%20post_id%20IN%20(SELECT%20post_id%20FROM%20%23query1)%20LIMIT%205%20%22%2C%22query3%22%3A%22SELECT%20id%2C%20name%2C%20pic_square%20FROM%20profile%20WHERE%20id%20IN%20(SELECT%20actor_id%20FROM%20%23query1)%20or%20id%20IN%20(SELECT%20fromid%20FROM%20%23query2)%22%7D%0A