如何使用Graph API获取Facebook页面中的帖子总数?

如何使用Graph API获取Facebook页面中的帖子总数?,facebook,facebook-graph-api,Facebook,Facebook Graph Api,我正在使用Facebook Graph API从公共页面抓取信息。目前的问题是如何获取Facebook页面上的帖子总数。如果我们转到/{page id}/posts,它将只返回在该页面上发布的25篇文章,并且没有提及该页面字段的摘要信息。我已经检查了前面的答案,似乎唯一的方法是计算下一个链接中每个链接的项目数并得到总数。但这是非常低效的。是否有任何方法可以直接获取FQL以外页面上的全部帖子?您可以尝试添加/page/posts?limit=1000,但我不确定这是否有效。您还可以尝试使用/pag

我正在使用Facebook Graph API从公共页面抓取信息。目前的问题是如何获取Facebook页面上的帖子总数。如果我们转到/{page id}/posts,它将只返回在该页面上发布的25篇文章,并且没有提及该页面字段的摘要信息。我已经检查了前面的答案,似乎唯一的方法是计算下一个链接中每个链接的项目数并得到总数。但这是非常低效的。是否有任何方法可以直接获取FQL以外页面上的全部帖子?

您可以尝试添加
/page/posts?limit=1000
,但我不确定这是否有效。您还可以尝试使用
/page/feed
查看它是否能获得您想要的结果。如果这两种方法都不起作用,那么很可能您无法检索帖子总数。此外,FQL将在明年被弃用。

Facebook不会主动统计一个页面的帖子数量;根据页面的不同,它可能是一个天文数字

你必须得到所有的帖子,自己数一数。我会用这样的东西

{PAGE}/posts?fields=id&limit=250
它将返回所需的最小数据集。不能超过250,可以使用FQL,但不能使用v2.1。另外,您不需要FEED,因为FEED是页面帖子和其他用户对页面的帖子的聚合。这将返回这样一个对象

{
 "data" : [
  PostData
  ... ],
 "paging" : {
  ...
  "next" : CursorURL
 }
}
这是光标URL,因此您可以按相反的时间顺序逐步删除250篇文章

您可以通过每次获得一个新光标(该光标还返回更多帖子)时增加250来缩短计数。由于最后一个游标将返回一个空数据数组,因此只需在第二个到最后一个游标的集合中计算并添加结果

     function p_post() {
                FB.api("/209652442394600/posts?fields=admin_creator,name&limit=250", function (response) {
                    var t = response.data.length;
                    document.getElementById('tposts').innerHTML = t;
            });
            }

它可以工作到250年,我上周使用过它

您只能检索页面上已发布帖子的摘要/计数。直接查询页面时,类似的操作将起作用:

{PAGE}?fields=published_posts.limit(1).summary(total_count).since(1)
响应将类似于:

{
    published_posts: {
        summary: {
            total_count: 12345
        },
        ...
    }
}
{
    summary: {
        total_count: 12345
    },
    ...
}
或者,如果您想直接查询
已发布的文章
,请使用:

{PAGE}/published_posts?limit=1&summary=total_count&since=1
响应将类似于:

{
    published_posts: {
        summary: {
            total_count: 12345
        },
        ...
    }
}
{
    summary: {
        total_count: 12345
    },
    ...
}
limit
设置为1可确保查询不会过大。如果您只需要总的post计数,则将
limit
设置为1

since
参数是一个unix时间戳(自1970年1月1日起的毫秒数),用于检索总的post计数。将其设置为1,因为将其设置为0将引发错误


更多详细信息:

这是不可能的。帖子的最大限制是100。帖子的最大限制是100。不知道250是从哪里来的。@Noah原来是250,但现在是100,如果你输入的超过100,它实际上会给你一个错误,而不仅仅是将结果限制在100。