FQL を使用してユーザーのフィードを取得することはできますか? graph.facebook.com/user/feed のように同じものを取得するには
4 に答える
cpilko の回答に記載されているリクエストは、現在のユーザーのニュースフィード (つまり、Graph API の /me/home に相当するもの) を取得します。したがって、その答えは受け入れられるべきではなかったと思います。
現在のユーザーのタイムライン (つまり、Graph API の /me/feed に相当するもの) について: タイムラインにはさまざまな情報が含まれているため、1 つの要求だけでこれを取得する簡単な方法はありません。
- 現在のユーザーによるステータスの更新が含まれています。
- 現在のユーザーを対象とした他のユーザーによる投稿が含まれています。
- 他のユーザー、イベントなどを対象とした現在のユーザーによる投稿は含まれません。
- メッセージ テキストも添付された写真、リンク、または場所も含まれていない、現在のユーザーによるストーリーは含まれません。*
*: これに関する情報はせいぜい大ざっぱであるため、最後のものについては 100% 確信が持てません。さまざまな投稿タイプがあり (完全なリストはまだ見ていません)、タイムラインに表示されるタイプと表示されないタイプのロジックがあるようです。私が言ったように、ドキュメンテーションは大ざっぱで、Facebook はあなたが彼らとまったく同じデータを得ることを望んでいないようです.
あなたの質問に答えるために: アプリ エクスペリエンスの一部としてユーザーのタイムラインを提供することを計画している場合は、おそらく最善の推測アプローチを目指すべきです。
これは私が見つけた非常に近い例です (タイムラインに友達の投稿が表示されないことを除いて、私が言ったように: 最良の推測です):
SELECT post_id, actor_id, target_id, description, message, attachment, type, permalink FROM stream WHERE source_id = me() AND is_hidden != "true" AND (type = 46 OR type = 60 OR type = 65 OR type = 80 OR type = 128 OR type = 247 OR type = 285 OR type = 373) LIMIT 100
ところで、これは私がこれまでに見つけた投稿タイプの最も完全なリストです: すべての facebook ストリーム投稿タイプのリストを取得するには?
答えは確かにそれほど心強いものではありませんが、これが役立つことを願っています. :)
FQL で同等のテーブルはstreamです。このクエリは、アクティブ ユーザーのニュース フィードを取得します。
SELECT post_id、actor_id、target_id、message FROM stream WHERE filter_key in (SELECT filter_key FROM stream_filter WHERE uid=me() AND type='newsfeed') AND is_hidden = 0