如何使用Facebook API调用超过100种状态?

Sea*_*see 8 facebook facebook-graph-api

我正在构建一个Facebook应用程序,我希望它能够读取过去一年中所有用户的状态.当我进行API调用时,无论我将限制设置为什么,我都只能检索前100个状态.

这是我用来拨打电话的网址:https: //graph.facebook.com/me/statuseslimit = 100&access_token = ...

当我将限制设置为较低时,它会显示较少的状态(证明限制参数有效).当我将限制设置得更高时,它只给出了前100个.当我使用'since'时,它仍然只给我100.

当我使用它给出的'下一个'网址时,我看到没有数据超过前100个状态.

我知道因为My Year In Status这样的应用程序可以获得更多

Bil*_*zke 6

它确实有效.您必须同时使用limitoffset查询参数.该limit参数设置批次大小.该offset参数设置用户的历史状态集合中的位置.如果不指定offset参数,Facebook会将其默认为零,这就是您持续查看相同数据集的原因.

对于第一批100个状态的设置limit100offset0.
对于第二批100个状态的设置limit100offset100.
对于第三批100个状态的设置limit100offset200.
对于第四批100个状态的设置limit100offset300.
等等...

继续迭代,直到你得到一个空的数据集:

{
   "data": []
}
Run Code Online (Sandbox Code Playgroud)


DMC*_*MCS 4

我已使用 Graph API 浏览器验证分页未按照您的描述工作。将其记录为 Facebook 的错误:https: //developers.facebook.com/bugs并在此处发布错误#。

编辑

根据错误关闭,100 个限制是设计使然,您不会得到更多,这意味着 Facebook 已做出有意识的商业决策,以限制其必须通过 Graph API存储、处理和提供的数据量。这样做需要花钱,而且由于 API 是免费使用的,我无法与他们争论。然而,如果我付了钱,那么我会一路踢着、尖叫着。