ユーザーと各ユーザーの相互の友達の数を取得しようとしています。
これを解決するために、グラフapiとfqlを詳しく調べました。グラフAPIを見てきましたme/mutualfriends/<uid>
ただし、これを多数の友人(> 1k)で行う場合は、個々の友人間の相互の友人を要求するには多すぎます。
次に、FQLとGraph APIの両方を使用して、バッチリクエスト(一度に最大50)でこれを試しました。これでも、1つのクエリですべての友達を取得し、次にN個のクエリで個々の友達との相互の友達を検索します。一度に50個ずつバッチ処理したとしても、これにはかなり長い時間がかかります。
これがメインのFQLクエリです。
select uid1 from friend where uid2 = FRIEND_ID and uid1 in (select uid2 from friend where uid1 = me())';
これはグラフAPIのURLです。
/me/mutualfriends/FRIEND_ID
私は次のようなバッチ処理を使用しています:
$facebook->api('/?batch='.json_encode($batch), 'POST');
バッチ内の各クエリが次のような配列である場合:
$cur = array('method'=>'GET', 'relative_url'=> $relative_url);
fqlの代わりにグラフAPIを使用する方が速いようですが、1つのクエリですべての友達の相互友達を取得する方法はありますか?それとも、これを行うためのより速い方法が実際にありますか?SOのさまざまな部分でmutual_friend_countについて読んだことがありますが、これはまだ機能していません。