Как я могу определить, какие лучшие друзья пользователя приложения Facebook? - PullRequest
4 голосов
/ 28 мая 2011

В настоящее время я пытаюсь создать приложение Facebook с помощью Facebook PHP SDK.

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

Знаете ли вы алгоритм или подсказку, чтобы получить их?

Ответы [ 3 ]

3 голосов
/ 29 мая 2011

Просто найдите маркеры дружбы, присвойте каждому виду вес, суммируйте «баллы за друзей» и подходите по возрасту дружбы (если вы ищете «пожизненный» балл). Вы можете посмотреть на разные таймфреймы, такие как «последние лучшие друзья» и т. Д.

Я не знаком с феноменом Graph API в Facebook, но если бы вы могли узнать возраст друга и количество комментариев / постов, которыми они обмениваются, у вас будет какая-то информация для продолжения. Подумайте о других маркерах, таких как количество фотографий, на которых они совместно отмечены, и т. Д.

2 голосов
/ 17 мая 2012

Я столкнулся с той же проблемой в приложении, над которым я работаю, и открыл исходный код, который использовал, хотя и в Ruby:

https://github.com/mikejarema/facebook-friend-rank

Это веб-служба, которая принимает маркер активного доступа и идентификатор пользователя и (при условии, что было предоставлено разрешение read_stream) возвращает хэш идентификаторов для подсчета, который можно использовать для сортировки в вашем приложении.

Ранг другаАлгоритм просматривает 500 последних взаимодействий пользователя (фид активности) и подсчитывает частоту появления всех друзей там.Результат дает разумное упорядочение друзей, от лучших к худшим, и он также работает на подгруппах друзей (например, сортировка общих друзей).

Как упоминалось в других ответах, есть много места для изучения тегов фотографий,общий друг считает, а также ищет тип взаимодействий (например, регистрация с другом, вероятно, является лучшей мерой близости, чем подобное в их статусе).

Вот пример приложения, использующего этот подход, и FriendРейтинг на бэкэнде:

http://facebook -friend-rank.herokuapp.com / demo / index.html

0 голосов
/ 11 июня 2012

Мне часто приходится получать список людей, с которыми пользователь больше всего взаимодействует («лучшие друзья» в терминологии Facebook).Потребовалось время, чтобы построить класс, и он далек от совершенства.Тем не менее, это сэкономит некоторое время людям, которые ищут, с чего начать.

https://github.com/anuary/ay-fb-friend-rank

В редакции от 11 июня 2012 г. следуют этим правилам, чтобы получить оценку друзей.

  1. Приложение просматривает записи в ленте пользователя.1.1.Друг, которому понравилась лента пользователя, получает оценку feed_like.1.2.Друг, который прокомментировал ленту пользователя, получает оценку 'feed_comment'.1.3.Друг, который обратился к пользователю в его ленте (будь то путем публикации непосредственно на его стене или пометки пользователя), получает оценку 'feed_addressed'.

  2. Фотографии.2.1.Если пользователь был отмечен другом на фотографии, профилю присваивается 'photo_tagged_user_by_friend'.2.2.Если пользователь отметил друга на фотографии, профилю присваивается 'photo_tagged_friend_by_user'.2,3.Профиль получит «photo_like» за понравившуюся фотографию, загруженную пользователем, или фотографию, на которой пользователь отмечен тегом.2,4.Профиль получит «photo_comment» для комментирования загруженной пользователем фотографии или фотографии, на которой пользователь отмечен тегом.

  3. Друзья.3.1.Профиль будет получать оценку «friend_mutual» за каждого общего друга.

  4. Входящие.4.1.Каждый профиль получает «inbox_in_conversation» за участие в беседе с пользователем.4.2.Оценка репарации дается за каждое сообщение для любого высказывания, когда только два человека разговаривали «inbox_chat».фотографии, загруженные пользователем или отмеченные пользователем.

...