Facebook FQL流限制?

fdq*_*qps 16 facebook facebook-fql

我希望得到我的墙的完整历史.但是我似乎在六月份的某个地方达到了极限.

我这样做多次调用:

SELECT created_time,message FROM stream WHERE source_id=MY_USER_ID LIMIT 50

SELECT created_time,message FROM stream WHERE source_id=MY_USER_ID LIMIT 51,100
Run Code Online (Sandbox Code Playgroud)

等等...

但我总是在墙上的最后(第一篇)帖子上结束.通过facebook.com我可以回去更长时间,所以Facebook显然拥有数据.

为什么我的帖子不老?还有另一种方法可以摧毁我的历史吗?

dig*_*ion 12

来自http://developers.facebook.com/docs/reference/fql/stream:

流表仅限于过去30天或50个帖子,以较大者为准

  • 这个答案并不完全正确.同样的参考文献也说:`但是你可以使用特定时间的字段,比如created_time和FQL操作符(例如<或>)来检索更大范围的帖子.所以这里的解决方案可能是**不**使用`LIMIT`但使用时间参数. (10认同)

Sub*_*ion 9

我遇到了同样的事情.我根本不明白,但看起来偏移不能超过限制*1.5

从理论上讲,这意味着总是增加匹配偏移的限制会修复它,但我无法验证这一点(我不确定我看到的问题是否是我的代码中的其他错误或是否有关于获取流的其他限制我不明白.

任何人都能解释我所看到的以及我所缺少的东西吗?

您可以转到FQL测试控制台来重现我的结果:

http://developers.facebook.com/docs/reference/rest/fql.query

粘贴在此查询中:

SELECT post_id, created_time, message, likes, comments, attachment, permalink, source_id, actor_id 
FROM stream 
WHERE filter_key IN 
(
      SELECT filter_key 
      FROM stream_filter 
      WHERE uid=me() AND type='newsfeed'
) 
AND is_hidden = 0 limit 100 offset 150
Run Code Online (Sandbox Code Playgroud)

当您单击"测试方法"时,您将看到我得到的2个结果中的一个:

  1. 结果回来了:[{post_id:"926 ......(我预料到的)
  2. 它返回空[](我没想到)

您可能需要通过更改"偏移"值进行试验,直到找到它破裂的确切位置.刚才我发现它在155和156时打破了我.

尝试更改限制和偏移量,您将看到在流中的特定位置不会出现空结果.以下是我看到的一些结果示例:

  • "...限制50偏移100"休息,返回空[]
  • "...限制100偏移50"工作,返回预期结果
  • "......限制50偏移74"有效
  • "......限制50偏移75"休息
  • "...限制20偏移29"工作
  • "......限制20偏移30"休息

除了看到limit = offset*1.5的关系,我真的不明白这里发生了什么.