我需要在其他数据中检索一个人在过去一年(在我的案例中为 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 流元素。
也许还有其他方法?
非常感谢你的帮助。