20

似乎 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 的字段中。

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

4

9 回答 9

34

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

于 2013-09-03T11:18:27.373 回答
21

我遇到了同样的问题,只是likes.summary(true),comments.summary(true)在“字段”中添加参数对我有用。

例如我用过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 隔开,

于 2013-11-21T17:26:17.073 回答
16

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)

改进版 (添加 limit(0) 以删除喜欢列表并仅获取摘要)

114916098537132_1265715836790480?fields=shares,likes.limit(0).summary(true),comments.limit(0).summary(true)
于 2016-05-03T07:01:39.387 回答
6

这非常适合我:

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

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

于 2017-10-05T03:59:23.413 回答
5

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

Facebook API - 通过 FQL 的评论计数

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

于 2013-05-06T13:52:51.350 回答
3

你可以做这样的请求:

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

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

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

于 2015-01-23T09:24:15.360 回答
3

如果您想计算 Facebook 上的所有内容。(该号码对 Facebook 的用户可见)

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

Facebook 查询语言参考

这种情况你应该去查询

SELECT comment_info FROM stream WHERE post_id = ...
于 2013-05-06T14:48:20.587 回答
-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将给出评论的数量。

于 2013-09-06T11:35:40.580 回答
-1

或者为了减少对现有代码的更改,请使用:

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

commentsCount 保存活跃孩子的评论数

于 2013-07-11T16:44:49.103 回答