显示最多评论(在Facebook上)“文章”

时间:2013-12-30 11:24:59

标签: django facebook

我在我的网站上有一些文章,人们可以使用Facebook发表评论。 修复是我必须找到评论最多的文章,并在网页上显示其中5个。 我试过调查facebook api,用Google搜索了2-3天没有任何运气。请帮忙

1 个答案:

答案 0 :(得分:0)

您可以从Facebook API查询此信息 - 我将解释执行此操作的过程,但我不是django专家,因此您需要将其转换为Python。

基本上,您需要获取每篇文章的网址,然后点击图表API,请求注释以及该网址的摘要,如下所示:https://graph.facebook.com/comments/?ids=YOUR-URL&summary=1

将上面的YOUR-URL部分更改为您要检查的链接。如果您愿意,您甚至可以指定多个链接:https://graph.facebook.com/comments/?ids=YOUR-URL1,YOUR-URL2&summary=1

因此,如果您查询example.com评论:

点击此网址https://graph.facebook.com/comments/?ids=http://example.com/comments&summary=1

你应该找回一些看起来像这样的JSON数据(我修剪了中间位):

{
   "http://example.com/comments": {
      "comments": {
         "data": [
...
         ],
         "paging": {
            "cursors": {
               "after": "NDc4OQ==",
               "before": "NDgyMg=="
            },
            "next": "https://graph.facebook.com/10150107083136229/comments?summary=1&limit=25&after=NDc4OQ\u00253D\u00253D"
         },
         "summary": {
            "order": "ranked",
            "total_count": 4822
         }
      }
   }
}

在“摘要”部分中,您可以看到有一个total_count,即该网址上发表的评论数。

所以你的过程将是:

  • 遍历您要检查的所有链接
  • 点击该网址的Facebook图谱API提取JSON中的total_count响应 存储它(可能在表中)
  • 按照下降的评论数量排序结果,限制为 只有前5个结果(如果你使用MySQL那么类似的话 SELECT * FROM ORDER BY total_count DESC LIMIT 5)