0

我的要求/目标:

我正在从公共页面检索过去 3 个月的 Facebook 帖子,并且我只想选择最近(过去 2 天)修改过的帖子。

我正在使用 httr R 包,并使用 GET 函数来完成上述操作。

我尝试了以下方法:

  1. url.data <- GET(url, config(token=token), config(add_headers("If-Modified-Since" = "2016-09-08 11:45")))

  2. url.data <- GET(url, config(token=token, add_headers("If-Modified-Since" = "2016-09-08 11:45"))

在上面的“url”中,“since”、“until”字段指定了需要检索帖子的时间段(3 个月)。'token' 是用于身份验证的 OAuth 令牌。

以上两种方法都是检索所有帖子,而不是仅检索过去 2 天内修改过的帖子。

是否有另一种将 If-Modified-Since 传递给 GET 的方法,这将导致仅检索所需的帖子?

注意:我已经检查了与 If-Modified-Since 相关的这些帖子,但它们没有回答我的问题:

  1. “If-Modified-Since”标头
  2. “If-Modified-Since”标题?
  3. 如果修改后 - HTTP 协议
  4. If-Modified-Since 日期格式

还有一些与我的场景不完全相关的问题。

任何帮助,将不胜感激。

4

1 回答 1

1

我认为您的问题的核心是“If-Modified-Since”标头的目的与 Facebook 过滤结果之间的混淆。

“If-Modified-Since”询问服务器“当我调用此 URL/使此查询自此日期/时间起更改时要返回的内容吗?”

发送到 Facebook 的“since”和“until”参数过滤请求以仅显示在这两个日期之间发布的内容。

Facebook 不会将两者合并以返回满足这两个问题的帖子——这些问题介于参数中设置的两个日期/时间之间,并且自使用“If-Modified-Since”设置的日期/时间以来已被修改。

这是因为 Facebook 执行搜索/过滤,查看整个响应并回答“当我调用此 URL/使此查询自此日期/时间起更改时要返回的内容吗?”这个问题。基于整个响应。如果整个响应中有任何变化,那么它会将整个响应发送给您。

如果要识别已更改的单个帖子,则必须遍历数组并单独检查每个元素。

于 2017-01-06T13:34:29.993 回答