0

tl; dr:ページに作成された投稿を取得する特定の方法はありますが、認証されたユーザーの友達によって作成された投稿のみを取得しますか?

iOSアプリで作業しており、GraphAPIメソッドを使用してページに対して行われたすべての投稿を取得できます。[facebook requestWithGraphPath:@"pageID/feed" andDelegate:self];また、を使用して現在認証されているユーザーの友達リストを取得することもできます。[facebook requestWithGraphPath:@"me/friends" andDelegate:self];

最初のデータセットをフィルタリングして、2番目のデータセットサーバー側(つまり、GraphAPIを介して)のIDによってのみ送信されたデータセットを取得する方法はありますか、それとも結果のクライアント側(私のコード)の最良のオプションです。

4

1 に答える 1

3

FQLを使用すると、非常に単純なクエリでこれを実行できます。

SELECT post_id FROM stream WHERE source_id = PAGEID AND actor_id IN (SELECT uid2 FROM friend WHERE uid1 = me())

括弧内のこのクエリの2番目の部分は、現在のユーザーの友達のユーザーIDのリストを選択することです(クエリに使用されるアクセストークンによって決定されます)。次に、このUIDリストを使用して、リストを選択するクエリの最初の部分をフィルタリングします。特定のページIDに投稿されたpost_idsの数(自分のページIDの代わりにプレースホルダーを使用してください)。

これにより、投稿IDのリストのみが表示されますが、ストリームテーブルのドキュメントには、選択できるフィールドの詳細が示されています。

FQLはGraphAPIとは別のAPIと見なされる場合がありますが、このブログ投稿に示されているように、実際にはGraphAPIを介して非常に簡単に実行できます。

于 2012-05-31T16:27:49.250 に答える