2

我需要在其他数据中检索一个人在过去一年(在我的案例中为 2012 年)在他的 Facebook 帐户上所做的所有共享。

我发现可以通过名为“stream”的 FQL 表访问共享,选择 stream.type = 80。在“created_time”和 source_id 上使用 where 子句应该可以解决问题:

SELECT post_id,message,likes,attachment 
FROM stream 
WHERE source_id = me() 
AND created_time > 1325397600 
AND type=80 
ORDER BY likes.count desc 

事实是……查询流表时,facebook的引擎似乎需要一个限制。如果您不提供一个,则没有结果。我想这是因为如果没有设置限制,响应时间可能会非常长......无论如何我相信他们有很多理由。所以 :

SELECT post_id,message,likes,attachment 
FROM stream 
WHERE source_id = me() 
AND created_time > 1325397600 
AND type=80 
ORDER BY likes.count desc 
LIMIT 100

但是:这个限制参数似乎是在我的一些 where 子句之前应用的,与 SQL server 等 SQL 语句不同,这意味着 fb 对我的示例查询所做的操作是顺序的:

  • 从流中随机抽取 100 个元素,任何类型(可能是状态、分享、照片、地点、朋友在墙上的帖子等)和任何时间。实际上,我的 source_id 子句似乎是在限制之前应用的。

  • 然后按类型 80 和 created_time 过滤,但不确定如何

就我而言,我需要 2012 年的所有共享,但我永远无法确定设置为 2000 或 5000 的任意限制会在应用过滤器之前捕获所有 2012 流元素。

也许还有其他方法?

非常感谢你的帮助。

4

0 回答 0