Как получить друзей в порядке количества общих друзей?

#facebook #facebook-fql #facebook-apps

#Facebook #facebook-fql #facebook-приложения

Вопрос:

Я разрабатываю приложение для Facebook. Я хочу знать, как я могу получить друзей в порядке количества общих друзей. Возможно ли это с помощью FQL или любого другого метода?

Ответ №1:

Обновить

Я не могу найти способ сделать это в одном запросе с помощью graph API, но это можно сделать в 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
  

вы можете попробовать это в проводнике

https://developers.facebook.com/tools/explorer?method=GETamp;path=fql?q=SELECT uid, mutual_friend_count, friend_count from user where uid in (SELECT uid2 FROM friend WHERE uid1=me()) ORDER BY mutual_friend_count desc

Комментарии:

1. Для других новичков: мне нужно было переключиться с Graph API на, чтобы FQL Query это работало в проводнике. В противном случае я получил "(#601) Parser error: unexpected end of query." сообщение об ошибке. 🙂

2. Я думаю, что API изменился. Теперь этот запрос возвращает { "error": { "message": "(#12) fql is deprecated for versions v2.1 and higher", "type": "OAuthException", "code": 12 } }

3. Похоже, что проводник не показывает всех моих друзей. Почему бы и нет?

Ответ №2:

Теоретически, вы можете получить список друзей пользователя, используя:

 $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 . Так что здесь может быть проблема с разрешением.

Ответ №3:

Я не думаю, что общие друзья доступны через FQL, поэтому вам придется сделать это сложно: вызвать graph api в цикле для каждого друга и получить количество общих друзей. Метод graph api: /me/mutualfriends/yourFriendsId, и вы можете выполнять 20 пакетных запросов одновременно, чтобы ускорить это. Если вы можете найти способ сделать это с помощью FQL, это будет ваш самый быстрый путь.

Ответ №4:

Это лишь частичный ответ, поскольку они не все в одном месте, до сих пор не нашли способ разместить их на одной странице, но это начало, его можно программно запускать в цикле через ваш список друзей…

 https://www.facebook.com/browse/mutual_friends/?uid=xxxxxxxxxxxx
  

потому что, если вы не укажете uid, он вернет ошибку… Я просто пытался получить список всех моих друзей на одной странице, но без кубиков. ridonculous.