2012-06-06 61 views
1

我试图访问给定用户的过去事件。我正在使用以下FQL查询:SELECT eid, name, pic_square, start_time, end_time, location FROM event WHERE eid IN (SELECT eid FROM event_member WHERE uid = me() AND rsvp_status != 'declined') AND start_time < 1338974650 ORDER BY start_time DESC LIMIT 0,201338974650应该是当前的UNIX时间戳)。这工作正常。然而,脸书只会在我的情况下返回一组4个事件,而facebook.com会显示更多批次。这是为什么?使用FQL查询过去事件

回答

-2

如果您通过传递uid来查询event_member表,您将获得用户创建的所有事件。如果您通过传递一个eid来查询表,它将为您提供事件的成员及其rsvp状态。

编辑:尝试设置start_date> 0如所述here它应该显示你所有的事件。

+0

我主要查询'event'表,而不是'event_member'表。子查询'SELECT eid FROM event_member WHERE uid = me()AND rsvp_status!='rejected''就是在那里获取用户的所有事件的成员,然后在我的main的WHERE eid IN子句中使用查询。 该查询工作正常,我得到我感兴趣的事件(这不是**只有用户创建的事件)。我只问LIMIT部分。 – mplappert

+0

所以你告诉我,用查询SELECT eid FROM event_member WHERE uid = me()AND rsvp_status!='rejected'你不会只得到你创建的事件吗?你确定?因为这是我的情况......我只能得到我创建的事件。 –

+0

根据[文档,event_member](https://developers.facebook.com/docs/reference/fql/event_member/)的第一行“包含事件的与会者列表...” – cpilko

1

是的。 Facebook严重限制了由API调用返回的过去项目的数量。当我访问我的一个页面时,我看到过去事件页面上列出了超过75个事件。当我使用FQL或Graph API查询页面的事件时,我只能得到2个事件。我的猜测是Facebook有一个单独的表格,用于存储过去不可通过API访问的事件。

顺便说一句,你可以通过用now()替换你的时间戳来简化你的代码。

+0

这就是我所设想的,但这很糟糕。我会尝试一种不同的基于时间戳的方法。 'now()'在我的情况下不起作用,因为我正在构建'start_time'时间戳,以便我总是收到今天发生的事件,即使它们可能已经启动了。 – mplappert

+0

好的,使用'start_time'来获取旧的事件也不起作用。 – mplappert