#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
вы можете попробовать это в проводнике
Комментарии:
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.