我该如何确定一个Facebook应用用户的最佳好友?

4

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

我想获取用户最好的朋友,或者是他最常交流的朋友。

您知道获取它们的算法或技巧吗?


1
我认为这方面没有任何API调用..你必须从Facebook获取一些数据并在你的端上进行一些处理。 - Mohit Jain
2
获取他们的墙/动态,用他们的好友ID填充一个数组,进行一些魔法以计算唯一ID的数量。 - Lawrence Cherone
不错的想法,劳伦斯,谢谢 :) - MrDJo
他们已经构建了这个功能,但应用程序无法访问。请查看我在此处的答案:https://dev59.com/aWw05IYBdhLWcg3wy052#10820251。 - bkaid
3个回答

3

简单来说,寻找友谊的标志,为每个活动分配权重,计算“朋友得分”,并根据友谊的年龄适当调整(如果您正在寻找“终身”得分)。您可以查看不同的时间范围,例如“最近的好朋友”等。

我对Facebook的Graph API并不是非常熟悉,但如果您能够访问朋友的年龄和他们交换的评论/墙贴数量,您就会有某种信息可供参考。考虑其他标记,如他们共同被标记的照片数量等。


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

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

这是一个网络服务,需要一个有效的访问令牌和用户ID,并返回一个哈希表,其中包含可以在您的应用程序中用于排序的ID和计数(假设已授予read_stream权限)。
好友排名算法查看用户最近500个交互(活动源),并统计所有出现的朋友的频率。结果给出了朋友的合理排序,从最好到最差,并且它也适用于朋友子集(例如,排序共同的朋友)。
正如其他答案中提到的那样,还有很多探索照片标签、共同朋友数量以及寻找交互类型的空间(例如,与朋友一起签到可能比点赞他们的状态更好地衡量亲密度)。
以下是使用此方法和Friend Rank的示例应用程序:

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


太好了!虽然速度有点慢,但在我自己测试时似乎运行得相当不错。 - Warpling
我认为除了 FB 公开 API 调用之外,任何事情都需要相当长的时间才能运行。即使是这个项目的天真实现也只有 5 次调用。我已经建立了一个异步模式,以便中间结果可以相对快速地获得(例如 1-2 秒)。请记住,这是一门不完美的科学,因此中间结果可能是“足够好的”。 - Mike Jarema
真的真的 :) 那段时间有多少是在等待 FQL 调用而不是解析?20% 还算不错,尽管前 20 名中有些让我感到困惑。到了 40%,它已经足够准确,可以用于向用户显示更相关的信息。之后,我认为可以继续在服务器上进行计算,以备下次用户回来或刷新时使用。 - Warpling

0

我经常需要获取用户与之互动最多的人员列表(在Facebook术语中称为“最好的朋友”)。构建这个类花费了一些时间,而且还远非完美。但是,这将为那些正在寻找起点的人节省一些时间。

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

2012年6月11日的修订遵循以下规则来构建好友分数。

应用程序查看用户的动态条目。 1.1. 喜欢用户动态的朋友将获得“feed_like”分数。 1.2. 评论用户动态的朋友将获得“feed_comment”分数。 1.3. 在他的动态中提到用户的朋友(无论是直接在用户的墙上发布还是标记用户)将获得“feed_addressed”分数。
照片。 2.1. 如果用户被朋友标记在照片中,则其个人资料将获得“photo_tagged_user_by_friend”。 2.2. 如果用户在照片中标记了朋友,则其个人资料将获得“photo_tagged_friend_by_user”。 2.3. 为喜欢用户上传的图片或用户被标记的照片,个人资料将获得“photo_like”。 2.4. 为评论用户上传的图片或用户被标记的照片,个人资料将获得“photo_comment”。
朋友。 3.1. 每个共同的朋友都会为个人资料获得“friend_mutual”分数。
收件箱。 4.1. 参与与用户的对话的每个个人资料都会获得“inbox_in_conversation”。 4.2. 对于仅有两个人进行对话的任何对话,每个消息都会获得单独的分数“inbox_chat”。

伙计,我希望能够检查一下,但是 github.com 的链接已经失效了。 - Mike Jarema
链接不起作用。 - Jaffer Wilson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接