1

我正在尝试以反向时间顺序从 Facebook 的 Graph API 中检索状态评论,即最新的评论应该在最前面。我不确定这是否可能。

我知道 Facebook 默认按时间降序排列帖子,默认情况下评论按时间升序(最旧的在顶部)。默认情况下,我指的是 Facebook.com 以及从 API 中检索它们的方式。

使用 Graph API,我可以按降序检索状态,但注释按升序返回。我想从 API 中以相反的顺序获取评论,而不必在我的程序中对它们进行排序。原因是程序被限制为它将下载的评论数,因此设置 limit=xx 实际上会检索前 xx 条评论,而不是最新的 xx 条评论。这对我没有好处,因为如果一个状态有 500 条评论,并且 xx=100,它总是会检索到相同的评论集(前 100 条要发布)。

我能找到的 Html 请求的最佳参数是“order_by”,它查找时间/日期参数(updated_time),但这实际上不起作用,因为它已经按 updated_time 排序(但升序)。如果可能,我想指定 order_by 降序 updated_time。

任何帮助将不胜感激。

4

2 回答 2

1

使用 API 没有直接的方法来执行此操作,但实现此工作的一种方法是检索状态的所有注释,将它们分配给一个数组,然后以相反的顺序循环遍历结果。

下面的示例从 Guinness Ireland 页面获取最后的状态更新,并将所有消息分配到一个数组中。一旦我们有了这个数组,我们就可以用循环输出结果。

示例:
$data = file_get_contents('https://graph.facebook.com/GuinnessIreland/statuses?limit=1&access_token=' . $ACCESS_TOKEN);

$comments = json_decode($data);
$messages = ($comments->data[0]->comments->data);

for ($counter = count($messages); $counter >= 0; $counter = $counter - 1) {
      echo $messageArray[$counter]->message;
      echo $messageArray[$counter]->created_time;
}

于 2012-07-03T15:20:38.730 回答
0

您可以通过此 url 使用 get 请求获取评论。您将获得 json 响应。

https://graph.facebook.com/ "StatusID"/comments?limit=500&access_token="accessToken"

StatusID=132343454_54346345 用户ID statusid accessToken=用户访问令牌。

你会得到 JSon 响应。获取所有详细信息,例如评论的用户、commentid、消息……您将获得 JSON 响应。解析它们。通过在 JSON 页面底部的“page”对象中连接“next”字符串中的 url,检查下一页上的评论。享受。

于 2012-07-05T07:18:45.340 回答