在FB图2.1中通过页面获得一篇文章

时间:2014-09-12 19:17:36

标签: facebook facebook-graph-api

我必须将一些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和喜欢的帖子。喜欢的是一个包含“计数”键值对的数组。

问题是当我使用新的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。”,       “type”:“OAuthException”,       “代码”:100     }

关于我如何获得一篇文章的任何想法?

1 个答案:

答案 0 :(得分:4)

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

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

在&#之后添加" .summary(true)" " .filter(stream)" 34;喜欢"我现在得到以下JSON

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

这也适用于评论

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

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

"。总结(真)"将获得JSON中的摘要密钥。

" .filter(流)"将确保您获得所有评论/喜欢计数。如果缺少这个,它将不计算Facebook决定"隐藏"由于他们的低级故事"值。

在API参考中,这些修饰符仅列在" / {object-id} / comments"部分,但喜欢和评论都很好。

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