c# - 使用 Graph API 计算 Facebook "Likes"

标签 c# facebook-graph-api

Facebook 修复了 Graph API 中的 /likes/likes 现在返回喜欢图表中特定对象(照片、相册等)的用户的完整列表。之前,它只返回 3 - 5 个用户。

我的问题是,如何在不解析整个 JSON 并获取元素计数的情况下计算“喜欢”的总数?我只对“喜欢”计数感兴趣;我对点赞的用户不感兴趣。

获取整个 JSON 数据集来计算似乎有点昂贵。

例如:https://graph.facebook.com/161820597180936/likes

这张照片有 1,000 多个赞。

最佳答案

鉴于字符串是 JSON,为什么不将其转换为标准的 .net 对象,并在其创建的数组上使用 .Count。然后将此信息缓存 15 分钟或更长时间(取决于您想要的信息是否过时)。

上面的方法非常繁琐,因为您实际上要搜索一个字符串未知次数、返回一个索引、将它与一个 int 进行比较、将另一个索引相加等等。并且上面的 C# 不起作用(假设您正在演示的是 C#)。

改用这样的东西:

public static T FromJson<T>(this string s)
{
    var ser = new System.Web.Script.Serialization.JavaScriptSerializer.JavaScriptSerializer();
    return ser.Deserialize<T>(s);
}

这里方法是一个扩展方法,它采用正确格式的 JSON 字符串并将其转换为对象 T,例如

    var result = // call facebook here and get your response string
    List<FacebookLikes> likes = result.FromJson <List<FacebookLikes>>();
    Response.Write(likes.Count.ToString());

    // now cache the likes somewhere, and get from cache next time.

我不确定它的性能,没有做过任何测试,但对我来说它看起来更整洁,更易读。看到您正在缓存数据,那么我会选择可读性高于前一种方法。

关于c# - 使用 Graph API 计算 Facebook "Likes",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4002817/

相关文章:

facebook - v2.x 中 API 调用的百分比卡住了

c# - 如何在不实际聚焦的情况下为按钮应用焦点视觉样式?

C# FormatException double.parse(),为什么 0.89 不解析?

c# - 为什么 MarkdownSharp 不对我的 HTML 进行编码?

ios - 我可以在新的FB对话中预先选择 friend 吗?

facebook-graph-api - Restfb - 在一次通话中获得多个连接

php - 在 AJAX 和 PHP 中写入 MySQL 数据库时使用 Facebook 登录

android - 从 API 获取 Facebook 帖子的链接

c# - 在 .Net 中是否可以在编译时有条件地隐藏属性?

c# - 使用 C# 时读取 csv 文件,不要读取双引号中的逗号