【问题标题】:Facebook Graph API search using since updated_time parameterFacebook Graph API 搜索使用自 updated_time 参数
【发布时间】:2015-06-13 11:25:06
【问题描述】:

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

  1. created_date
  2. updated_date

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

但假设有一个帖子发布于 2015 年 6 月 7 日,而 2015 年 6 月 8 日发生的活动(喜欢、分享、cmets 等)很少。在这种情况下,该帖子的 updated_time 发生了变化,但created_time 将保持不变(2015 年 6 月 7 日)。如果我传递参数since=2015-06-08,那么我将无法跟踪该帖子上的所有活动。

有什么解决方案可以让我在updated_time 上传递since 参数而不是将其传递给created_time

【问题讨论】:

  • 不,这是不可能的。 API 目前提供的过滤功能非常有限。

标签: facebook facebook-graph-api


【解决方案1】:

作为@CBroe points out in the comments,Facebook Graph API 不支持此功能。 (以前使用 Facebook Query Language (FQL) 支持,但不再可用)。

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

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

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

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

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

注意:如果您正在处理过去内容经常更新的内容,您可能希望使用 Graph API 的Batch Requests feature,而不是单独下载每个帖子。

【讨论】:

  • 你能分享一个示例代码,以及如何更新数据库吗?
【解决方案2】:

如果您的应用程序的目的是对给定页面或提要上的更改做出反应,请考虑使用 Webhooks 而不是手动抓取页面以获取更新。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多