私はFacebookアプリケーションを開発しています。共通の友達の数順に友達を作る方法を知りたいです。FQLまたは他の方法で可能ですか?
4 に答える
アップデート
グラフ API を使用して 1 つのリクエストでそれを行う方法を見つけることはできませんが、Ruby でフレンド リストを取得し、この例のようにユーザー コンテキストを使用して各フレンドにリクエストを送信することで実行できます。
元の答え
使用する FQL クエリは次のとおりです。API バージョン < v2.1 でのみ機能します。
SELECT uid, mutual_friend_count from user where uid in (SELECT uid2 FROM friend WHERE uid1=me()) ORDER BY mutual_friend_count desc
エクスプローラーで試すことができます
理論的には、次を使用してユーザーの友達のリストを取得できます。
$friendsOfFriend = $facebook->api('/'.$yourFriendsFacebookId.'/friends');
次に、それぞれの結果をチェックして、それらがあなたの友達でもあるかどうかを確認できます。
$isMyFriend = $facebook->api('/me/friends/'.$someonesFacebookId);
...そしてカウントを追跡します。
しかし、私のテストはまだ結果を返しませんでした。Facebook の友達の何人かの友達を取得しようとしましたが、例外が返されました: Can't lookup all friends of {friend's_facebook_ID}. Can only lookup for the logged in user {my_facebook_ID}, or friends of the logged in user with the appropriate permission. したがって、ここに許可の問題がある可能性があります。
共通の友達は FQL 経由で利用できるとは思わないので、これを難しくする必要があります。各友達のループでグラフ API を呼び出し、相互の友達の数を取得します。グラフ API メソッドは /me/mutualfriends/yourFriendsId であり、一度に 20 個のバッチ リクエストを実行して、これを高速化することができます。FQL でこれを行う方法を見つけることができれば、それが最速のルートになります。
すべてが 1 つの場所にあるわけではないため、これは部分的な回答にすぎません。まだ 1 つのページにそれらを表示する方法を見つけていませんが、これは開始点であり、友人リストを介してプログラムでループで実行できます...
https://www.facebook.com/browse/mutual_friends/?uid=xxxxxxxxxxxx
uid を指定しないとエラーが返されるためです... 1 ページムですべての友達のリストを取得しようとしていましたが、ダイスはありませんでした。ばかげている。