16

我正在使用 Facebook 的 Graph API 从公共页面获取大量评论。
默认情况下,facebook 每个响应返回 25 条评论,并使用分页。这导致需要多个请求,因为我知道前面会有很多评论,这是 uneccesery。

我阅读了有关“限制”参数的信息,您可以传递该参数以要求每个响应提供一定数量的项目。

我想知道,该参数的限制是什么?我假设我不能通过 &limit=10000。

4

5 回答 5

12

获取评论有另一种方式:

https://graph.facebook.com/<PAGE_ID>_<POST_ID>/comments?limit=500

限制参数的最大值为 500。

于 2013-03-11T08:25:17.907 回答
9

是的,使用限制参数,您可以在一次调用中传递您想要的特定资源数量。默认限制为 25。

例如。如果您想在一次调用中对具有 id 的帖子发表 100 条评论POST_ID,您可以这样查询:

https://graph.facebook.com/POST_ID?fields=comments.limit(100) 
于 2013-02-14T13:58:10.093 回答
1

I think they have changed this. For /feed? I only get 200-225 posts back but for comments I get as many as 2000 back

于 2014-06-26T18:10:43.533 回答
0

老问题,但这是在当前的 Facebook 文档中,以防有人通过搜索找到这个问题(强调我的):

出于性能原因,某些边缘也可能具有最大限制值。在所有情况下,API 都会返回正确的分页链接。

换句话说,即使您指定了超出端点允许的限制,“pagination.previous”和“pagination.next”元素将始终提供正确的 URL 以从中断处继续。

于 2021-02-24T22:04:31.173 回答
-1

我建议您改用 FQL。

FQL 提供了一种更灵活的方法,您可以根据需要组合数据类型(帖子、用户、页面等)。您还可以查询属于故事列表的评论,而不仅仅是一个限制您的请求数量的评论。

但是有几个缺点:
1. 有 5000 条评论的限制。在这里,您将使用类似于以下内容的查询:“SELECT id, ...... FROM comments, ... WHERE parent_id in (1,2,3....) ORDER BY time LIMIT 0, 5000”。即使您使用“LIMIT 0, 1000”、“LIMIT 1000, 1000”、LIMIT 2000、1000 等将其拆分为多个查询,但您永远不会得到超过 5000 条评论(“LIMIT 5000, 1000”将返回空的)。
2. 在 Facebook 的服务器上发出的所有真实请求都算作一次请求。您可以发送实际上是请求组合的内容,这将被视为多个请求。
3. Facebook 不喜欢繁重的请求。您最终可能会在更短的时间内被阻止(分钟 -> 小时,而不是几天)。如果发生这种情况,

于 2013-05-28T11:53:51.017 回答