我试图通过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条记录。
有人可以帮助我找到一种方法来获取我要求的确切数量的记录。 坦克前进!!
答案 0 :(得分:12)
Facebook工程师的这篇博文解释了这种现象。
http://developers.facebook.com/blog/post/478/
以下是解决您问题的部分......
您可能会注意到返回的结果数量并非总是如此 等于指定的“限制”。这是预期的行为。询问 参数在我们的结尾应用,然后检查是否 返回的结果对查看者可见。因此,它是 可能会得到比预期更少的结果。
以下是博客条目的最佳部分...
大笑,你杀了我的Facebook!为什么不直截了当地保持一致,而不是“困难和困惑”。?!?!?这也意味着当您手动构建自己的查询时, 你应该知道,如果你有一些表和连接 指定“offset”参数,指向您的第N个结果 可能不会在您的结果中返回(如第2步中的第3个结果) 上面的图片)。这可能使分页变得困难和混乱。