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