【问题标题】:How to get the total number of posts in a Facebook page with Graph API?如何使用 Graph API 获取 Facebook 页面中的帖子总数?
【发布时间】:2014-10-25 08:34:33
【问题描述】:

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

【问题讨论】:

    标签: facebook facebook-graph-api


    【解决方案1】:

    您只能检索页面上已发布帖子的摘要/计数。直接查询页面时,这样的事情会起作用:

    {PAGE}?fields=published_posts.limit(1).summary(total_count).since(1)
    

    响应将类似于:

    {
        published_posts: {
            summary: {
                total_count: 12345
            },
            ...
        }
    }
    

    或者如果你想直接查询published_posts,使用:

    {PAGE}/published_posts?limit=1&summary=total_count&since=1
    

    响应将类似于:

    {
        summary: {
            total_count: 12345
        },
        ...
    }
    

    limit 设置为1 可确保您的查询不会过大。如果您只需要总帖子数,请将limit 设置为 1。

    since 参数是一个 unix 时间戳(自 1970 年 1 月 1 日以来的毫秒数),是检索帖子总数所必需的。将此设置为 1,因为将其设置为 0 会引发错误。

    更多详情:https://developers.facebook.com/docs/graph-api/reference/page/published_posts/

    【讨论】:

      【解决方案2】:
           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,我上周用过

      【讨论】:

        【解决方案3】:

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

        您必须自己获取所有帖子并计算它们。我会使用这样的东西。

        {PAGE}/posts?fields=id&limit=250
        

        它将返回您需要的尽可能小的数据集。你不能超过 250,你可以使用 FQL 但不能使用 v2.1。此外,您不需要 FEED,因为这是页面帖子和其他用户在页面上发布的帖子的聚合。这将返回一个像这样的对象。

        {
         "data" : [
          PostData
          ... ],
         "paging" : {
          ...
          "next" : CursorURL
         }
        }
        

        这是光标 URL,因此您可以按时间倒序排列 250 个帖子的组。

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

        【讨论】:

        • 帖子的最大限制为 100。不知道你从哪里得到的 250。
        • @Noah 原来是 250,但现在是 100,如果你放了超过 100,它实际上会给你一个错误,而不是仅仅将结果限制为 100。
        【解决方案4】:

        您可以尝试添加/page/posts?limit=1000,但我不确定这是否可行。您也可以尝试使用/page/feed 看看它是否获得了您想要的结果。如果这些都不起作用,那么您很可能无法检索到帖子总数。此外,FQL 将于明年弃用。

        【讨论】:

        • 这是不可能的。帖子的上限为 100。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-03
        相关资源
        最近更新 更多