使用since updated_time参数进行Facebook Graph API搜索

时间:2015-06-13 11:25:06

标签: facebook facebook-graph-api

我在Python中使用Facebook Graph API。每个帖子都有两个日期时间:

  1. created_date
  2. updated_date
  3. 当我提供since参数时,它会返回created_date大于或等于since参数的Feed。例如,如果我提供since=2015-06-05,那么它将从2015年6月5日到现在返回所有帖子。

    但是假设有一个帖子在2015年6月7日发布,并且在2015年6月8日发生的活动(喜欢,分享,评论等)很少。在这种情况下,该帖子的updated_time更改但created_time将相同(2015年6月7日)。如果我传递参数since=2015-06-08,那么我就无法跟踪该帖子上的所有活动。

    是否有任何解决方案可以通过since传递updated_time参数而不是将其传递给created_time

2 个答案:

答案 0 :(得分:8)

正如@CBroe指出的那样,Facebook Graph API并不支持这一点。 (可以使用FQL来完成,但这已被弃用,并且不再支持更长时间。)

也就是说,通过一些创造性(以及一些额外的代码),可以通过组合几个查询来实现类似的效果。

在我的应用程序中,我使用以下参数执行查询:

  • until=2015-07-07(或任何since日期)
  • fields=updated_time(保持查询快速,有效负载较小)
  • limit=5000(或类似的大页面尺寸,因为我只抓住一个字段)

然后,我评估每个帖子的updated_time大于since日期,并将这些帖子放入队列以下载整个帖子内容。

  

注意:如果您正在处理过去内容频繁更新的内容,您可能希望使用图谱API {{3}而不是单独下载每个帖子。

因此,例如,如果until(以及since)日期为2015-07-07且帖子上的updated_time2015-10-15,然后我知道帖子是在2015-07-07之前创建的,但后来更新了。它不会在since查询中被提取,但我可以轻松下载它以同步我的缓存。

答案 1 :(得分:0)

如果您的应用的目的是对给定网页或Feed上的更改做出反应,请考虑使用Webhooks而不是手动抓取该网页以进行更新。

  

Webhooks允许您接收Facebook社交图中特定对象更改的实时HTTP通知。