我如何确定哪些是Facebook应用程序用户最好的朋友


How could I determine which are the best friends of a Facebook application user?

我目前正在尝试使用Facebook PHP SDK创建一个Facebook应用程序。

我想检索用户的哪些朋友是他最好的朋友,或者是他交谈最多的朋友。

你知道一个算法或技巧来获得它们吗?

简单地说,寻找友谊的标记,给每项活动一个权重,加上"朋友分数",并根据友谊的年龄进行调整(如果你正在寻找"一生"分数)。你可以查看不同的时间框架,例如"最近最好的朋友"等。

我对Facebook的Graph API不是很熟悉,但如果你能访问朋友的年龄和他们交换的评论/墙帖子的数量,你会有一些信息可以继续。想想其他标记,比如他们共同标记的照片数量,等等。

我在开发的应用程序中遇到了同样的问题,并开源了我使用的代码,尽管是Ruby:

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

这是一种web服务,它采用活动访问令牌&user id和(假设已授予readstream权限)返回一个id到count的散列,该散列可用于在应用程序中进行排序。

好友排名算法查看用户最近的500次互动(活动提要),并统计所有好友出现在那里的频率。结果给出了朋友的合理排序,从最好到最坏,它也适用于朋友的子集(例如,对共同的朋友进行排序)。

正如其他答案中所提到的,有很大的空间来探索照片标签、共同的朋友数量,以及寻找互动类型(例如,与朋友登记入住可能是衡量亲密程度的更好方法,而不是衡量他们的状态)。

下面是一个使用这种方法的示例应用程序和后端的Friend Rank:

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

Iquiet经常需要获得用户互动最多的人的列表(Facebook术语中的"最好的朋友")。花了一段时间建立了这个班级,但它还远远不够完美。然而,这将为那些正在寻找起点的人节省一些时间。

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

2012年6月11日的修订遵循这些规则来建立朋友分数。

  1. 应用程序查看用户的提要条目。1.1.喜欢用户提要的朋友会得到"feed_like"的分数。1.2.对用户订阅源进行评论的朋友将获得"feed_comment"分数。1.3.在订阅源中给用户发地址的朋友(无论是直接在墙上发帖还是在用户中添加标签)都会得到"feed_added"分数

  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.对于只有两个人在"收件箱_帽子"中进行了对话的任何交流,每条信息都会得到重新评分。照片由用户上传或在用户被标记的地方。