Я столкнулся с той же проблемой в приложении, над которым я работаю, и открыл исходный код, который использовал, хотя и в Ruby:
https://github.com/mikejarema/facebook-friend-rank
Это веб-служба, которая принимает маркер активного доступа и идентификатор пользователя и (при условии, что было предоставлено разрешение read_stream) возвращает хэш идентификаторов для подсчета, который можно использовать для сортировки в вашем приложении.
Ранг другаАлгоритм просматривает 500 последних взаимодействий пользователя (фид активности) и подсчитывает частоту появления всех друзей там.Результат дает разумное упорядочение друзей, от лучших к худшим, и он также работает на подгруппах друзей (например, сортировка общих друзей).
Как упоминалось в других ответах, есть много места для изучения тегов фотографий,общий друг считает, а также ищет тип взаимодействий (например, регистрация с другом, вероятно, является лучшей мерой близости, чем подобное в их статусе).
Вот пример приложения, использующего этот подход, и FriendРейтинг на бэкэнде:
http://facebook -friend-rank.herokuapp.com / demo / index.html