相关疑难解决方法(0)

Facebook的5000 Post API限制

我对Facebook限制你的api电话的方式有疑问.

在本文的底部:http://developers.facebook.com/blog/post/478/ facebook说:

除了上面列出的每个表和连接的文档中提到的限制之外,知道在运行可见性检查之前我们将获取的最大结果数是5,000是有帮助的.

我想知道如何通过这样的公共数据进行分页.例如,采取夏奇拉:她上传的每张照片上都有很多喜欢,这个api电话:

https://graph.facebook.com/5027904559_10150854808869560/likes?format=json&limit=1000&offset=0&__after_id=100002349968919

最终停止在5000喜欢.

https://graph.facebook.com/5027904559_10150854808869560/likes?format=json&limit=1000&offset=5000&__after_id=100000881924617

一个有趣的一点是,这些数据都是公开的,我没有必要登录Facebook才能看到它.我知道有关于如何使用数据的隐私政策,这不是我的问题.如果数据是公开的,这些数据是哪个,为什么我们不能全部获取,如果可以的话,怎么样?

主要问题是:

  1. 对于特定的API调用,您能获得超过5000个结果,如上所述吗?

  2. 这是最近的5000个喜欢的吗?因此,如果您立即开始收集此帖子上的数据,然后每隔10分钟左右回去寻找新的喜欢,您是否能够通过这种防止5000限制的方法获取所有数据?

  3. 是对API调用的限制,还是仅限于他们向一个用户发送的结果数量,或者他们为某个帖子发回的结果数量等等?

  4. 这适用于帖子,标记和评论以及分页吗?

我知道这个问题有点开放,但我已经到处寻找答案,而且没有详细记录.任何帮助都会很棒,我想很多人将来可能会参考这些信息.

更新:

运行此API调用时:

https://graph.facebook.com/5027904559_10150854808869560/likes?format=json&limit=1000&offset=4964&__after_id=100000881924617

你得到一个结果,因此达到极限(至少接近它).有人建议使用FQL,这可能会返回更多.但我尝试用FQL在PHP中做同样的事情并且只获得了1条记录.

$select = urlencode("SELECT user_id, object_id, post_id FROM like WHERE post_id='5027904559_10150854808869560' LIMIT 1000 OFFSET 4964");
        $fql_query_url = 'https://graph.facebook.com/fql?q=' . $select;
        $fql_query_result = file_get_contents($fql_query_url);
        $fql_query_obj = json_decode($fql_query_result, true);
Run Code Online (Sandbox Code Playgroud)

所以,到目前为止,唯一的答案是"不",你总是限制在5000个结果.我不认为/知道具有某些特定权限的特定access_token是否有帮助.

还有一次更新,当我去Shakira的页面并点击"x这样的人"并开始向下滚动列表时,我也达到了极限.因此,不仅Facebook限制API和FQL返回,它们限制了自己的页面.

我有兴趣看看有谁知道为什么?它们一次只有5k高速缓存,如果人们用如此多的请求访问数据库,他们将无法处理规模?只是一个猜测.

php facebook facebook-graph-api

8
推荐指数
1
解决办法
3875
查看次数

标签 统计

facebook ×1

facebook-graph-api ×1

php ×1