如何从facebook实时更新中提取feed deltas

时间:2012-11-30 18:48:31

标签: facebook facebook-graph-api real-time

我想要的是能够对用户的Feed的特定更新采取行动:当其他人对用户的帖子/照片/链接发表评论时,其他人对评论发表评论,其他人喜欢评论或发布我的用户,在这些情况下,我们会通知用户发生了确切的更改,因此我们需要确切知道更改/发生了什么并对其采取行动。

我有实时工作,挑战处理,检查sha1签名等。更新本身只是告诉我:“用户A的提要已经改变”。我希望得到的是“这些是自上次以来的变化”。

我可以想到几种方法来解决这个问题,但它们看起来都非常沉重:

  • 每次更新时保留每个用户的Feed的副本,通过迭代每个键手动区分,确定我检测到的更改是否是我需要采取的更改。我仍然不确定这会工作,因为我只看到最后几篇文章。评论/喜欢发布在前面的帖子重新排序吗?
  • 跟踪每次更新中最新更改的时间戳,然后在后续更新中按此过滤。这仍然意味着我必须遍历整个Feed中的每个帖子/评论/喜欢。
  • 我在某处读到帖子/评论ID单调增加。每个用户的Feed是真的吗?对于帖子来说,仅仅是本地评论?帖子/评论/喜欢分享一个id池,所以我可以全球依赖吗?再次不确定这里的很多细节,但在这种情况下,我可以跟踪一次更新中看到的最高ID,并在后续更新中对其进行过滤。

无论如何,所有这些似乎都非常暴力。非常感谢具体的建议或方法。感谢。

1 个答案:

答案 0 :(得分:0)

您可以存储Graph pagination返回的散列中的'after'光标,每个您处理的帖子类型和评论等。然后为Feed添加expanded field select,抓取所有帖子,评论,喜欢等等。

将你的后游标与扩展字段中的散列中的游标进行比较,然后扔掉那些没有改变的游标。

为哈希中剩余的内容执行batch API request并处理该内容。