我必须将一些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 }
关于我如何获得一篇文章的任何想法?
答案 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