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

San*_*dav 5 facebook facebook-graph-api

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

  1. created_date
  2. updated_date

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

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

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

Jer*_*ney 8

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

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

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

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

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

注意:如果您正在处理过去内容频繁更新的内容,您可能希望使用Graph API的批量请求功能,而不是单独下载每个帖子.

因此,例如,如果until(并且因此since)日期是2015-07-07updated_time帖子上的日期2015-10-15,那么我知道帖子是在之前创建的,2015-07-07但之后更新.它不会在since查询中被提取,但我可以轻松地单独下载它以同步我的缓存.