найти общих друзей

Я работаю над приложением, используя данные из API графика facebook. Пользователь входит в систему и может генерировать материал из своих данных на fb. Мы используем, помимо прочих данных, количество общих друзей между текущим пользователем и каждым из его друзей, используя конечную точку me/mutualfriends/friend_id. Дело в том, что это один запрос на друга. Даже если мы пакетируем запросы, обычно это не менее 4 не очень быстрых запросов.

Поэтому мне интересно: у нас уже есть все друзья, и нам нужно только количество общих друзей, а не какие-либо данные о них (и в любом случае они у нас уже есть): есть ли лучший способ, используя меньше запросов?

Спасибо за ваше время, ребята.


person ksol    schedule 09.08.2012    source источник


Ответы (1)


Если у вас есть друзья каждого пользователя, вы можете просто взять пересечение массива друзей двух пользователей, чтобы получить общих друзей.

user1_friends = ['a', 'b', 'c']
user2_friends = ['c', 'd', 'e']
mutual = user1_friends & user2_friends

взаимный должен быть равен ['c']

Это должно быть намного эффективнее, чем обращение к конечной точке.

person Robert Chuchro    schedule 10.08.2012
comment
В том-то и дело: у меня нет доступа к друзьям друга (если только он/она не предоставил доступ к моему приложению - разумеется, на это мы можем положиться) - person ksol; 13.08.2012