【问题标题】:Getting total likes of a post by a page in FB graph 2.1通过 FB 图 2.1 中的页面获取帖子的总点赞数
【发布时间】:2014-09-12 19:17:36
【问题描述】:

我必须将一些 FQL 转换为 Graph2.1 http 请求。

fql

select post_id, likes from stream where source_id = {page_username} and filter_key='owner' limit 1000

这将为我可以为 {page_username} 输入的任何页面返回该帖子的帖子 ID 和点赞数。 likes 是一个包含“count”键值对的数组。

问题是当我使用新的 2.1 时,我无法获得帖子的总点赞数。

GET /v2.1/{page_username}?fields=posts{id,likes} HTTP/1.1
Host: graph.facebook.com

我只能获得一组喜欢该帖子的用户。问题是它也是分页的,所以它不是一个完整的列表。

引用说有一个“total_count”字段。 Facebook Graph Reference

GET /v2.1/{page_username}?fields=posts{id,likes{total_count}} HTTP/1.1
Host: graph.facebook.com

但这会返回错误

“错误”:{ "message": "(#100) 未知字段:total_count。", “类型”:“OAuthException”, “代码”:100 }

关于如何获得一个帖子的点赞数有什么想法吗?

【问题讨论】:

  • 您的研究有什么进展吗?我也有同样的问题。
  • 并非如此。看来FB是想限制他们这边的工作量。我在 C# 中工作,所以我现在只是获取所有数据,使用 LINQ to JSON 来查询和计算喜欢的次数。考虑到 FQL 如此简单,这有点痛苦。
  • 刚刚发布并回答。希望对你有帮助

标签: facebook facebook-graph-api


【解决方案1】:

所以我找到了获得答案的简单方法。

GET /v2.1/{page_username}?fields=posts{id,likes.summary(true).filter(stream)} HTTP/1.1
Host: graph.facebook.com

通过在“喜欢”之后添加 ".summary(true)"".filter(stream)",我现在得到以下 JSON

{...
    "likes": {
        "data": [ .... ]
        "paging": { .... }
        "summary": {
            "total_count": 12345 
        }
    }
}

这也适用于 cmets

{page_username}?fields=posts{id,comments.summary(true).filter(stream)}

获得与摘要和总数相同的结构。

".summary(true)" 将获取 JSON 中的摘要键。

".filter(stream)" 将确保您计算所有 cmets/likes。如果缺少此项,则不会计算 Facebook 决定“隐藏”的节点,因为它们的“热门故事”价值较低。

在 API 参考中,这些修饰符仅列在“/{object-id}/cmets”部分,但对喜欢和 cmets 都适用。

参考: https://developers.facebook.com/docs/graph-api/reference/v2.1/object/comments

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 2013-10-24
    • 1970-01-01
    • 2012-05-17
    相关资源
    最近更新 更多