FQL的结果不正确/不完整

时间:2013-03-01 22:33:41

标签: facebook api facebook-fql photo

所以,我需要从朋友那里得到最新的照片。我尝试从我的代码以及http://developers.facebook.com/tools/explorer

的FQL资源管理器中运行一些查询

以下查询永远不会返回。

SELECT src_big,created,owner FROM photo WHERE owner in(从朋友那里选择uid2,其中uid1 = me())按创建的desc命令

在所有者上使用WHERE子句可能不是一个好主意,即使FQL文档确实说所有者已编入索引。所以,我把它修改为:

SELECT src_big,created,owner FROM photo WHERE help in(选择来自所有者的相册的帮助(从朋友那里选择uid2 = uid1 = me()))按创建的desc limit 2000命令

但确实会返回,但只返回我朋友中的3张照片,总照片数量远不及2000。

我尝试将结果限制为仅过去7天内创建的照片。

SELECT src_big,created,owner FROM photo WHERE help in(选择来自所有者的专辑的帮助(从朋友那里选择uid2,其中uid1 = me()))并创建> 1361570941按创建的desc limit 2000命令

现在我只收到1张照片(显然是1位照片)。

然后我尝试了最后365天。

SELECT src_big,created,owner FROM photo WHERE help in(选择来自所有者的专辑的帮助(从朋友那里选择uid2,其中uid1 = me()))并创建> 1330639808按创建的desc limit 2000命令

现在我有更多的照片,但仍然没有2000,而且只有这三个所有者。

如果我现在遍历我的每个朋友并运行此查询:

SELECT src_big,created,owner FROM photo WHERE owner = and created> 1330639808按创建的desc限制订单100

然后我得到了正确的结果,最终当我和所有朋友一起完成时,我有来自202位朋友的照片,如果我按照创建的方式对整体结果进行排序,那么前面提到的3个所有者并不会占据最高行。有许多业主在前2000个点发布了照片,因此之前的查询显然返回了不正确(不完整)的数据。

但是,与之前的查询相比,最后一种方式(循环播放所有朋友)的性能非常糟糕 - 我们谈的是几分钟而不是几秒钟。

这是一个已知的问题或限制吗?任何解决方法?

1 个答案:

答案 0 :(得分:0)

我的Facebook员工朋友建议使用多个查询,如下所示:

{ “p1”:“SELECT src_big,created,owner FROM photo WHERE owner = 4850 AND created> 1341203410”, “p2”:“SELECT src_big,created,owner FROM photo WHERE owner = 5569 AND created> 1341203410” }

我还没有尝试过,但我猜它会比每个朋友进行API调用快得多。

他说他会对原始查询的错误结果提出错误。