2

我试过"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 个。知道吗?

4

1 回答 1

5

是的,这很正常。Facebook 执行您的 FQL 并返回与您的查询匹配的所有帖子。在这种情况下,有 100 个帖子。

然后Facebook 会过滤掉您的应用程序看不到的帖子。这是基于演员的隐私设置。表中没有允许您预先过滤结果visible_to_me的字段。stream

如果您想要 100 个帖子,请要求 200 个,然后显示前 100 个。大多数情况下,您将在结果中获得至少 100 个帖子。

如果您stream不带查询LIMIT,您将获得最近 50 个帖子或最近 30 天的项目,以较少者为准

作为奖励,对于您的created_time查询,strtotime()如果您不考虑 UNIX 时间戳(我不考虑),则可以使用 FQL 创建时间戳。strtotime()它解析与 PHP函数相同的字符串。

于 2013-01-10T23:22:23.520 回答