【问题标题】:getting all post comments under limit using facebook fql query使用 facebook fql 查询获取所有帖子评论的限制
【发布时间】:2013-05-01 22:06:55
【问题描述】:

我一直在尝试使用 Fql 查询来显示一个帖子的所有 cmets。起初我显示 2 个帖子,然后当点击“显示更多 cmets”时,我显示下一个 50 个 cmets,这样它会继续。当“显示更多 cmets”时我通过 ajax 调用图形 api 执行以下操作 -

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

但是说当我第一次单击“显示更多 cmets”时,它显示 52 cmets,然后当我再次单击时,它显示大约 102 cmets。但是对于下一次单击,未显示 152 cmets。它停留在大约 102 cmets。

我的目标 -

第一次点击“显示更多 cmets”= 从第一个 cmets 开始显示 52 个 cmets(限制值 = 52 我在查询中指定)

第二次点击 = 显示从第一个 cmets 开始的 102 个 cmets(limit value=102)

第三次点击 = 显示从第一个 cmets 开始的 152 个 cmets(限制值=152) ......继续

所以我无法做到这一点。我真的尝试了很多使用偏移量的方法。很多问题。Facebook 有错误吗?请尽快提供帮助。

【问题讨论】:

  • 另外我想要的主要是我如何从第 50 条评论开始获得 50 cmets?

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


【解决方案1】:

你应该试试光标分页,推荐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

获取特定用户的提要示例:

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

【讨论】:

  • 您好,感谢您的回复。我在图形 API 资源管理器中测试了您的第一个查询并收到以下错误 - “(#602) post_id_cursor 不是评论表的成员。”那么我该如何进行呢?
  • 当我使用具有 read_stream 权限的图形 api explorer 令牌时它可以工作。但当我使用为具有相同 read_stream 权限的用户生成的应用程序令牌时不起作用!你认为问题在哪里?我的应用令牌非常适合获取提要,......
  • 你可以去developers.facebook.com/tools/explorer/…,粘贴应用访问令牌并提交吗?即使我使用应用访问令牌,APP_ID|APP_SECRET 形式,我也没有问题
  • 是的,我做到了。我通过 js sdk 生成访问令牌,然后通过 appid 和 secret 在服务器端扩展它,但没有运气!是否需要更多权限?
猜你喜欢
  • 2012-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-18
  • 2011-12-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多