2012-10-09 68 views
1

我在Facebook上有一个页面,我已经创建了一些活动。Facebook活动API

我也在我的移动应用程序中使用这些事件。

但现在图API显示我已经去过的事件。

如果你去Graph API Explorer你会看到它显示4个事件。

但是从底部开始的最后2个事件是过去的事件。

我已经为他们添加了结束日期,因此这里不成问题。

该怎么做,以便图API不显示这2个事件?

我不想从Facebook中删除它们,但只是想隐藏它。

请指教。

+0

什么阻碍你抛出过去的事件? –

回答

3

您可以限制Facebook的返回,只显示其使用接受UNIX时间戳since查询参数的特定日期后创建的事件的数据。

所以,如果你想这是后8日2012年10月或任何其他日期的创建活动,您可以用since查询参数的呼叫,在这种情况下08 Oct 2012 00:00:00 GMT Unix时间戳将1349654400

现在,如果我们做与since查询参数的呼叫,上述UNIX时间戳,它会返回后8日2012年10月创建的所有事件。

下面是与since查询参数上Graph API Explorer制备的工作电话。

在情况下,如果上面的链接不起作用:

https://developers.facebook.com/tools/explorer?method=GET&path=jarnvags%2Fevents%3Fsince%3D1349654400

路径:jarnvags /事件?由于= 1349654400

让我知道,如果这有助于你:)

编辑: 以下是如何与FQL做到这一点:

SELECT eid, name, description, pic_big, start_time, end_time, location FROM event WHERE creator = 109341359096369 AND eid IN (SELECT eid FROM event_member WHERE uid = 109341359096369) AND start_time >= now() ORDER BY start_time 

而且这里是你应该怎么做的PHP:

$pageID = '109341359096369'; 
$fql = 'SELECT eid, name, description, pic_big, start_time, end_time, location FROM event WHERE creator = ' . $pageID . ' AND eid IN (SELECT eid FROM event_member WHERE uid = ' . $pageID . ') AND start_time >= now() ORDER BY start_time'; 
$ret_obj = $facebook->api(array(
          'method' => 'fql.query', 
          'query' => $fql, 
         )); 
print_r($ret_obj); 

结帐eventFQL docs在:https://developers.facebook.com/docs/reference/fql/event/

编辑2:只想强调通过以下cpilko在意见中提出这样的人谁看到这个答案在将来很容易注意到它的时候,你不必将日期转换为时间戳了,它只与日期一起工作(2012-10-08)。

下面是来自Facebook的事件文档引用了Events Timezone Migration Note

Events Timezone Migration Note

与 '活动时区' 开始迁移,所有的事件时间 总是ISO-8601格式的字符串; 'date_format'查询字符串 修饰符不再有任何作用。现在根据事件类型返回以下格式 :

仅限日期(例如,'2012-07-04'):具有日期但没有 特定时间的事件。精确时间(例如'2012-07-04T19:00:00-0700'): 从特定时间点开始的事件,距离UTC有特定偏移量 。这是新的Facebook事件记录时间的方式,并且 允许用户查看不同时区中的事件。本地时间 (不建议使用,例如'2012-07-04T19:00:00'):不包含 的旧时事件具有任何时区信息。此格式已弃用,但 由于旧系统仍在 系统中而继续返回。

+1

您不需要将日期转换为时间戳了。自2012年8月8日以来,'Jarnvags/events?也同样适用。 – cpilko

+0

哦,这太好了,不知道它接受日期,谢谢你的头:) –

+0

好吧,我可以理解这个概念。但有没有办法让它使用今天的日期? –