Facebook Api 获取动态和评论

4
我正在尝试获取公共墙上的动态和相关评论。因此,每隔X分钟我都会进行一次查询,以获取新内容(动态和评论)。
我需要获取动态(自从myDate以来的新动态)和评论(发布在新动态上的评论以及发布在旧动态上的评论)。因此,如果有人在旧动态上发表评论,我想要获取它。
我尝试使用FQL和Graph API来实现这一点,但我无法找到最佳解决方案。
使用FQL存在一些问题(错误)与LIMIT和OFFSET,并且不太好用。使用Graph API的功能也不是很强大。因此,这是我尝试过的方法:
https://graph.facebook.com/PAGE_ID/feed?access_token=MY_ACCES_TOKEN0&limit=500&since=1350033469&until=now&updated_time>1350033469

这将为我提供最新的帖子,因此没问题,因为我为每个帖子都进行了新的查询,以获取每个订阅源的评论:
https://graph.facebook.com/PAGE_ID/comment?access_token=MY_ACCES_TOKEN0&limit=500&since=1350033469&until=now&updated_time>1350033469

问题在于如果评论发布在一篇旧文章上,我将无法收到它。

使用FQL,我无法仅筛选出最新的帖子(根据我的since日期)和有新评论的帖子。

https://api.facebook.com/method/fql.query?query=SELECT post_id, text, fromid FROM comment WHERE post_id IN (SELECT post_id FROM stream where source_id=PAGE_ID and comments.created_date>1350033469)&access_token=MY_ACCES_TOKEN

使用Graph API,我有一个很好的分页方法(在响应中使用下一页和上一页链接),但是在FQL中我没有找到任何解决方案。
所以,有人有什么想法吗? 谢谢。
C.C.

1个回答

4
首先,FQL已经过时了,所以你需要仅使用Graph API。
我提出的解决方案是,当你已经有一个帖子时,你需要使用它的唯一ID重新检查该帖子,这个请求会给你两个时间,即“created_time”和“updated_time”,因此你需要检查你的“updated_time”是否发生了变化。
Graph API中提供的分页仅适用于帖子,因此当帖子有新评论时,它们不会出现在列表的第一位,你需要自己找到它们。
-- 更新 --
使用“batch_requests”来实现这一点,这样你就可以一次性进行多个请求。

你的解决方案不错,但如果数据库中存储了5000篇文章,你会怎么做?你会执行5000个查询来检查评论吗? - CC.
我读到了一些关于批处理请求的内容。所以你正在使用它,而且它运行良好? - CC.
当然,它们是相同的请求,只是您可以同时执行很多个请求。 - eLRuLL
那么,这就是你寻找的东西吗? - eLRuLL
你最终使用了批量请求吗?这对你来说是一个解决方案吗? - eLRuLL
显示剩余4条评论

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