让Facebook发布所有反应计入单个Graph API请求

时间:2016-04-28 06:11:07

标签: facebook facebook-graph-api

Facebook发布了新的反应{NONE,LIKE,LOVE,WOW,HAHA,SAD,ANGRY}功能,但我无法弄清楚单个图形API请求中的所有反应计数。

有没有人想出一种方法可以在单个请求中获得每个帖子的详细反应?

5 个答案:

答案 0 :(得分:42)

@CBroe引入的方法似乎正在使用Multiple ID Read Requests

  

IDS = 7175346442_10153799389241443,7175346442_10153799470326443&安培;字段= reactions.type(爱).limit(0)。总结(TOTAL_COUNT)。如(reactions_love),reactions.type(WOW).limit(0)。总结(TOTAL_COUNT) 。如(reactions_wow),reactions.type(HAHA).limit(0)。总结(TOTAL_COUNT)。如(reactions_haha),...

Facebook Graph API Explorer的屏幕截图:

enter image description here

一旦检索到一组帖子,就应该能够使用单个请求读取按类型分组的反应计数。请注意,多ID读取请求模式中的ID的当前限制为50。

答案 1 :(得分:11)

理论上可以将字段扩展与Field Aliases结合使用,如下所示:

?fields=reactions.type(LIKE).limit(0).summary(1).as(like),
        reactions.type(WOW).limit(0).summary(1).as(wow),
        reactions.type(SAD).limit(0).summary(1).as(sad),…

但在这方面似乎仍存在一些缺陷;我经常在测试时遇到“发生未知错误”; F.E.在上面的查询中用LIKE替换LIKE的限制值会触发它......

答案 2 :(得分:6)

只需将以下内容用作图表查询的一部分

fbpageid/posts?fields=created_time,story,message,shares,reactions.type(LIKE).limit(0).summary(1).as(like),reactions.type(LOVE).limit(0).summary(1).as(love),reactions.type(HAHA).limit(0).summary(1).as(haha),reactions.type(WOW).limit(0).summary(1).as(wow),reactions.type(SAD).limit(0).summary(1).as(sad),reactions.type(ANGRY).limit(0).summary(1).as(angry)&limit=10

所以我只使用1个查询获得帖子ID,创建时间,故事,消息,分享计数,反应计数(当前6个反应)。它也适用于APi v2.9

答案 3 :(得分:6)

如果您获得了read_insights的许可,您可以通过以下方式获得Feed或帖子的反应

fields=insights.metric(post_reactions_by_type_total).period(lifetime).as(post_reactions_by_type_total)

你会得到如下结果:

        "name": "post_reactions_by_type_total",
        "period": "lifetime",
        "values": [
          {
            "value": {
              "like": 10,
              "love": 2,
              "wow": 3,
              "haha": 1,
              "sorry": 1,
              "anger": 2
            }
          }
        ],

答案 4 :(得分:5)

我找到了通过1个请求实现此目的的方法:

GET /{userId}?fields=
  posts.as(like){reactions.type(LIKE).limit(0).summary(true)},
  posts.as(love){reactions.type(LOVE).limit(0).summary(true)},
  posts.as(wow){reactions.type(WOW).limit(0).summary(true)},
  posts.as(haha){reactions.type(HAHA).limit(0).summary(true)},
  posts.as(sad){reactions.type(SAD).limit(0).summary(true)},
  posts.as(angry){reactions.type(ANGRY).limit(0).summary(true)},
  posts.as(thankful){reactions.type(THANKFUL).limit(0).summary(true)}

通过这种方式,您将收到7个帖子列表(每个响应一个)。例如:

{
  "like": {
    "data": [<list of posts>]
  },
  "love": {
    "data": [<list of posts>]
  },
  "wow": {
    "data": [<list of posts>]
  },
  "haha": {
    "data": [<list of posts>]
  },
  "sad": {
    "data": [<list of posts>]
  },
  "angry": {
    "data": [<list of posts>]
  },
  "thankful": {
    "data": [<list of posts>]
  },
  "paging": {
    "previous": "...",
    "next": "..."
  },
  "id": "<userId>"
}