【问题标题】:Facebook graph api comments paginationFacebook 图形 api 评论分页
【发布时间】:2017-09-01 21:01:24
【问题描述】:

我正在尝试使用以下 api url 请求获取所有帖子的 cmets:

$fb->get($yourPage.'/feed?fields=comments.limit(100)&limit=25&since=2017-7-01&until=2017-7-31', $accessToken);

但有些帖子有超过 500 个 cmets,这会在 api 响应中产生分页“(下一个)”。现在我想检索所有的 cmets,那么如何通过“cmets”进行分页,因为我知道如何通过此代码对帖子进行分页:

    $response = $fb->get($yourPage.'/feed?fields=comments.limit(500)&limit=25&since=2017-7-01&until=2017-7-31', $accessToken);
    $comments = $response->getGraphEdge();
    $totalcomments = array();

    if ($fb->next($comments)) {
//Do something if there is pagination in the posts
}

那么我该如何为 cmets 做同样的事情呢?我在堆栈和谷歌上搜索了很多,但没有任何问题指向这一点......谢谢

【问题讨论】:

    标签: php facebook facebook-graph-api pagination


    【解决方案1】:

    每个 cmets 对象都包含一个分页对象:

    {
      "comments": {
        "data": [
          {
            "created_time": "2017-09-01T12:06:19+0000",
            "from": {
              "name": "xxx",
              "id": "1234"
            },
            "message": "xxx",
            "id": "1234"
          },
          ...
        ],
        "paging": {
          "cursors": {
            "before": "NzkZD",
            "after": "NzgZD"
          },
          "next": "https://graph.facebook.com/v2.10/cccccc/comments?access_token=xxx&pretty=0&limit=2&after=NzgZD"
        }
      },
      "id": "xxx"
    }
    

    对于您获得的每篇文章,您都需要一个子例程(例如,使用递归函数)在单独的 API 调用中使用“next”参数来获取所有 cmets。

    【讨论】:

    • 它不是有一个函数来执行'next'参数,就像它对帖子所做的那样;喜欢这个 $fb->next($cmets)?
    • 没有,但是你可以直接用$fb->获取下一个参数,应该差不多
    • 你能提供正确的代码吗?只是为了节省我的时间?
    • stackoverflow 不是免费的编码服务,我们不会花时间来节省您的时间;)您应该已经拥有所需的一切,只需使用每个帖子的下一个参数进行额外的 api 调用。
    • 我不知道如何访问下一个参数。
    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 2011-08-08
    • 2014-09-08
    • 2016-07-25
    • 1970-01-01
    • 2013-06-23
    • 2016-03-21
    • 1970-01-01
    相关资源
    最近更新 更多