我尝试"SELECT post_id, actor_id, target_id, message, likes FROM stream WHERE source_id = me() LIMIT 100"
,它返回81而不是100个帖子,然后我尝试了"SELECT post_id, actor_id, target_id, message, likes FROM stream WHERE source_id = me() LIMIT 50"
,并期望它返回50个帖子,因为第一个查询返回81,但结果只包含43个帖子。
想知道LIMIT如何运作。
此外,created_time
并不适用于我,
"SELECT post_id, actor_id, target_id, message, likes FROM stream WHERE source_id = me() AND created_time > 1262196000 LIMIT 100"
会返回81个帖子,而"SELECT post_id, actor_id, target_id, message, likes FROM stream WHERE source_id = me() AND created_time > 1262196000"
只返回5.任何想法?
答案 0 :(得分:5)
是的,这是正常的。 Facebook执行您的FQL并返回与您的查询匹配的所有帖子。在这种情况下,有100个帖子。
然后 Facebook过滤掉您的应用无法看到的帖子。这是基于演员的隐私设置。 visible_to_me
表格中没有stream
字段可供您预先过滤结果。
如果您想要100个帖子,请求200,然后显示前100个。大部分时间,您将在结果中获得至少100个帖子。
如果您在没有stream
的情况下查询LIMIT
,您将获得最近50个帖子或最近30天的商品,以较少者为准。
作为奖励,对于created_time
查询,如果您不考虑UNIX时间戳(我不这样做),您可以使用strtotime()
在FQL中创建时间戳。它解析与PHP strtotime()
函数相同的字符串。