1

Facebookユーザーのニュースフィードを取得するためのベストプラクティスは何ですか?
たとえば、過去24時間分のニュースを入手します。

GraphAPIとFQLの両方を見てきました。どちらもユーザーのフィード(/ me / home)を取得する機能を提供しますが、どちらも同じ論理クエリに対して異なる結果セットを返すようであり、ニュースアイテムの完全なセットを返すものはないようです。それは仕様によるものなのだろうか。

私はさまざまな時間範囲で実験したので、たとえばFQLで過去24時間を取得したい場合、簡単な解決策は過去24時間をクエリすることです。ただし、これはそのスコープ内のすべての投稿を返すわけではありません。したがって、次のステップは、それぞれ1時間の時間枠で24個のクエリを送信することです。それはより多くのアイテムを返すでしょう、しかしこれも不完全です。同様に、4時間のブロックで送信すると、さらに異なる数のアイテムが返されます。驚いたことに、6つのクエリまたは4時間のウィンドウを送信すると、1時間のウィンドウの24のクエリを送信するよりも多くの結果が返されます。もちろん、これらは私が行ったいくつかのテストの経験的な結果ですが、必ずしもAPIの完全な動作を説明しているわけではありません。

グラフAPIを使用しても、ユーザーのフィードからアイテムの完全なセットが返されることはありません。

SOの人々がこのトピックを中心に質問をするのを見たことがありますが、答えを見つけることができませんでした(そして、答えがあればいいのですが...)

FacebookはRealtimeAPIの方が信頼性が高いと説明しているため、Realtime APIを使用することは堅牢なアプローチであり、データを自分のDBに保存し、ユーザーのフィードを作成することで問題が発生します。特定のデータ項目に対しては機能しますが、ユーザーのホームフィードでは有効になっていないため(user.feedはリアルタイムAPIに含まれていますが、それは別のものです)、このアプローチも不可能のようです。

それでは、たとえば-24時間、またはおそらく48時間の範囲で、ユーザーのニュースフィードアイテムの完全なリストを取得するためのベストプラクティスは何ですか?それが不可能な場合-設計上またはビジネス上の理由により、達成できる最も近いことは何ですか?

可能であれば、リアルタイムAPIなどを使用してこのデータを自分のDBに構築してもかまいません。(もちろん、いつかスケーリングを処理する必要がありますが、それまでは、最初に機能を動作させる必要があります...)

私はstackoverflowに関連するいくつかの質問を見てきましたが、これに答えるものはありません。そのため、見つけた場合は、遠慮なく私のものを重複としてマークしてください。

4

1 に答える 1

1

Facebook がユーザーのニュース フィードからすべてのアイテムを返すことはめったにありません。これは仕様によるものです。Graph API のドキュメントに/me/homeは、 がユーザーのニュースフィードにあるものとは異なるものを返すことを示すメモがあり、これは設計によるものです。

プライバシー設定でアプリへのアクセスをブロックしているユーザーは、API によってデータが返されることはありませんが、フロント エンドには表示されます。何がフィルタリングされているのか、またその理由を知る方法はありません。開発者のブログに、このフィルタリングのしくみを説明するブログ投稿があります。

あなたができる最善のことは、のようなものを求めることです/me/home?since=yesterday&until=today&limit=1000

于 2013-01-21T16:54:26.787 に答える