Fql Limit返回的结果少于预期的结果

时间:2012-02-26 01:49:06

标签: facebook facebook-fql

我试图通过fql查询从facebook获取数据。 我想做的其中一件事就是每次通话都能获得一个有意义的记录。我试图通过'LIMIT [start],[end]'命令来执行此操作,它假设将这些数字之间的记录返回给我。而不是[end] - [start]记录,而不是假设要返回的记录总数。我得到随机数量的记录,我已经检查过,我可以确定我没有尝试获得更多的记录。

LIMIT示例:

http://graph.facebook.com/fql?q=SELECT actor_id, message,description FROM  stream WHERE source_id =5878435678 Limit 2,10

这假设返回7条记录(计数从0开始),我只得到3条记录。 有趣的是,当我写作而不是10 50时,我有26条记录。

有人可以帮助我找到一种方法来获取我要求的确切数量的记录。 坦克前进!!

1 个答案:

答案 0 :(得分:12)

Facebook工程师的这篇博文解释了这种现象。

http://developers.facebook.com/blog/post/478/

以下是解决您问题的部分......

  

您可能会注意到返回的结果数量并非总是如此   等于指定的“限制”。这是预期的行为。询问   参数在我们的结尾应用,然后检查是否   返回的结果对查看者可见。因此,它是   可能会得到比预期更少的结果。

以下是博客条目的最佳部分...

  

这也意味着当您手动构建自己的查询时,   你应该知道,如果你有一些表和连接   指定“offset”参数,指向您的第N个结果   可能不会在您的结果中返回(如第2步中的第3个结果)   上面的图片)。这可能使分页变得困难和混乱。

大笑,你杀了我的Facebook!为什么不直截了当地保持一致,而不是“困难和困惑”。?!?!?