4

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

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

你知道获得它们的算法或技巧吗?

4

3 回答 3

3

简单地说,寻找友谊的标记,给每个活动一个权重,合计“朋友分数”,并根据友谊的年龄(如果你正在寻找“终生”分数)。您可以查看不同的时间范围,例如“最近最好的朋友”等。

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

于 2011-05-29T09:15:26.427 回答
2

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

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

这是一个 Web 服务,它接受一个活动的访问令牌和用户 ID,并且(假设已授予 read_stream 权限)返回一个 ID 散列到可用于在您的应用程序中进行排序的计数。

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

正如其他答案中提到的,有很多空间可以探索照片标签、共同朋友数量以及寻找互动类型(例如,与朋友签到可能比对他们状态的点赞更能衡量亲密程度)。

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

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

于 2012-05-17T01:33:42.337 回答
0

我经常需要获取与用户互动最多的人的列表(“最好的朋友”,在 Facebook 术语中)。花了一段时间来建立这个类,它远非完美。但是,这将为正在寻找从哪里开始的人节省一些时间。

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

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

  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”的任何对话,每条消息都会给出一个补充分数。由用户上传或标记用户的照片。

于 2012-06-11T08:57:33.730 回答