Dav*_*hou 7 facebook facebook-graph-api
我正在使用Facebook Graph API从公共页面抓取信息.目前的问题是如何获得Facebook页面上的帖子总数.如果我们转到/ {page-id}/posts,它将只返回此页面上发布的25个帖子,并且没有摘要信息提到该页面的字段.我已经检查了上一个答案,似乎唯一的方法是计算下一个每个链接的项目数并获得总数.但效率很低.是否有任何方法可以直接在FQL以外的页面上获取总帖子?
您只能检索页面上已发布帖子的摘要/计数。直接查询页面时,这样的事情会起作用:
{PAGE}?fields=published_posts.limit(1).summary(total_count).since(1)
Run Code Online (Sandbox Code Playgroud)
响应将类似于:
{
published_posts: {
summary: {
total_count: 12345
},
...
}
}
Run Code Online (Sandbox Code Playgroud)
或者,如果您想published_posts直接查询,请使用:
{PAGE}/published_posts?limit=1&summary=total_count&since=1
Run Code Online (Sandbox Code Playgroud)
响应将类似于:
{
summary: {
total_count: 12345
},
...
}
Run Code Online (Sandbox Code Playgroud)
设置limit为 1 可确保您的查询不会过大。如果您只需要总帖子数,则设置limit为 1。
该since参数是一个 unix 时间戳(自 1970 年 1 月 1 日以来的毫秒数),需要检索总帖子数。将此设置为 1,因为将其设置为 0 将引发错误。
更多详情:https : //developers.facebook.com/docs/graph-api/reference/page/published_posts/
小智 1
Facebook 不会主动统计某个页面发布的帖子数量;根据页面的不同,它可能是一个天文数字。
您必须获取所有帖子并亲自数一数。我会用这样的东西。
{PAGE}/posts?fields=id&limit=250
Run Code Online (Sandbox Code Playgroud)
它将返回您需要的尽可能小的数据集。您不能超过 250,使用 FQL 可以,但使用 v2.1 则不行。另外,您不需要 FEED,因为这是页面帖子和其他用户在页面上发布的帖子的聚合。这将返回一个像这样的对象。
{
"data" : [
PostData
... ],
"paging" : {
...
"next" : CursorURL
}
}
Run Code Online (Sandbox Code Playgroud)
这是光标 URL,因此您可以按时间倒序顺序向下浏览 250 个帖子组。
您可以通过每次获得新光标时增加 250 来缩短计数,该新光标也会返回更多帖子。您只需使用倒数第二个游标对集合中的结果进行计数和添加,因为最后一个游标将返回空数据数组。
| 归档时间: |
|
| 查看次数: |
19262 次 |
| 最近记录: |