Facebook图形api评论计数

时间:2013-05-03 11:55:15

标签: facebook facebook-graph-api count facebook-comments

似乎Facebook改变了帖子的结果,几周前就可以直接从帖子中读取评论数

https://graph.facebook.com/125909647492772_502974003098530

你有类似

的东西
...
"comments": {
"data": [
  {
    "id": "502974003098530_78616446", 
    "from": {
      "name": "Mathias Fritz", 
      "id": "526559276"
    }, 
    "message": "saugeil!", 
    "can_remove": false, 
    "created_time": "2013-03-26T14:58:01+0000", 
    "like_count": 1, 
    "user_likes": false
  }
], 
"paging": {
  "cursors": {
    "after": "MQ==", 
    "before": "MQ=="
  }
}, 
"count": 1

但现在缺少计数。

我对图表文档进行了一些研究,但是这方面的唯一变化似乎是评论现在可以有评论......而这些评论会在名为comment_count的字段中计算。

还有办法获得总评论数吗?

9 个答案:

答案 0 :(得分:30)

要获得计数,请在结尾处添加?summary = 1:https://graph.facebook.com/125909647492772_502974003098530/comments?summary=1

答案 1 :(得分:19)

我遇到了同样的问题,只需在参数中添加likes.summary(true),comments.summary(true)以对抗为我工作的“字段”。

e.g。我使用了https://graph.facebook.com/me/feed?access_token=ACCESS_TOKEN&fields=story,from,story_tags,likes.summary(true),comments.summary(true)

而不是https://graph.facebook.com/me/feed?access_token=ACCESS_TOKEN

如果需要,您还可以添加其他参数;由a分隔,

答案 2 :(得分:13)

summary=true正是您要找的

得到喜欢数:

114916098537132_1265715836790480/likes?summary=true

获取评论数

114916098537132_1265715836790480/comments?summary=true

获取股票数量:

114916098537132_1265715836790480?fields=shares

最后[结合所有3]

114916098537132_1265715836790480?fields=shares,likes.summary(true),comments.summary(true)

改进版本 (添加限制(0)以移除喜欢列表并获取摘要)

114916098537132_1265715836790480?fields=shares,likes.limit(0).summary(true),comments.limit(0).summary(true)

答案 3 :(得分:5)

您可以通过FQL获得总评论数。请参阅以下问题作为参考:

Facebook API - comment count via FQL

以下是您需要的查询:SELECT comment_info FROM stream WHERE post_id = ...

答案 4 :(得分:4)

这与我完美配合:

fields=shares,created_time,comments.summary(true).limit(0)

此回复评论计为summary并同时返回0条评论,这是完美的,因为您只需要评论计数。

答案 5 :(得分:3)

如果您想在Facebook上统计一切。 (Facebook的用户可以看到这个数字)

您应该使用FQL(Facebook查询语言)而不是图谱API。

Facebook Query Language Reference

这种情况你应该查询

SELECT comment_info FROM stream WHERE post_id = ...

答案 6 :(得分:2)

你可以提出这样的要求:

{pageid}/posts?fields=comments.summary(1){id}

它将返回一个帖子列表,包括每个帖子的评论数。 在这里,我只返回了评论ID,因为我只需要每篇帖子的评论数量,但当然您可以包含许多其他字段:

{pageid}/posts?fields=comments.summary(1){id,message},id

答案 7 :(得分:-1)

或者对现有代码进行较少的更改,请使用:

    $.each(json.data,function(i,fb){
    ...
       var commentsCount = 0
       if(fb.comments!=undefined){
          commentsCount=fb.comments.data.length
       }
    ...
    }

评论计数包含活跃孩子的评论数量

答案 8 :(得分:-1)

尝试以下方法:

{
    "data": [
        {
            "id": "447235535389660_1226199",
            "from": {
                "name": "Harjeet Walia",
                "id": "100004980601083"
            },
            "message": "Price",
            "can_remove": false,
            "created_time": "2013-09-06T10:39:01+0000",
            "like_count": 0,
            "user_likes": false
        },
        {
            "id": "447235535389660_1226152",
            "from": {
                "name": "Shoba Dhyani Jakhmola",
                "id": "100000906896060"
            },
            "message": "baap re kitna mehnga !",
            "can_remove": false,
            "created_time": "2013-09-06T10:05:09+0000",
            "like_count": 0,
            "user_likes": false
        }
    ],
    "paging": {
        "cursors": {
            "after": "MQ==",
            "before": "NA=="
        }
    }
}

然后

int commentCount = <JsonNode Var with above data>.path("comments").path("data").size();

此处commentCount会提供评论数量。