0

私の要件/目的:

公開ページから過去 3 か月の Facebook 投稿を取得しています。最近 (過去 2 日間) に変更された投稿のみを選択したいと考えています。

私は httr R パッケージを使用しており、GET 関数を使用して上記を実現しています。

私は次のことを試しました:

  1. url.data <- GET(url, config(トークン=トークン), 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」には、投稿を取得する必要がある期間 (3 か月) を指定する「since」、「until」フィールドがあります。'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」パラメータは、これら 2 つの日付の間に投稿されたコンテンツのみを表示するようにリクエストをフィルタリングします。

Facebook は、両方の質問を満たす投稿を返すために 2 つをマージしません。これは、パラメーターで設定された 2 つの日付/時刻の間にあり、「If-Modified-Since」で設定された日付/時刻以降に変更されています。

これは、Facebook が検索/フィルター処理を実行し、応答全体を見て、「この URL を呼び出したり、このクエリをこの日時以降に変更したりしたときにコンテンツが返されましたか?」という質問に回答するためです。回答全体に基づいています。応答全体で何かが変更された場合は、応答全体が送信されます。

変更された個々の投稿を特定したい場合は、配列をループして各要素を個別にチェックする必要があります。

于 2017-01-06T13:34:29.993 に答える