Google日历 - 显示正常事件等重复性事件

时间:2009-08-17 14:01:38

标签: php zend-framework google-calendar-api

我正试图通过Google日历帐户显示接下来20天的活动列表。令人不安的反复发生的事件没有显示(我假设因为他们的开始时间已经很久了)......所以。有什么想法吗?

require_once dirname(__FILE__).'/../../../Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_HttpClient');
Zend_Loader::loadClass('Zend_Gdata_Calendar');

$service = new Zend_Gdata_Calendar();

$query = $service->newEventQuery();
$query->setUser('REMOVED');
$query->setVisibility('public');
$query->setProjection('full');
$query->setOrderby('starttime');
$query->setSortOrder('ascending');
$query->setFutureevents('true');
$query->setMaxResults(20); 

try { $eventFeed = $service->getCalendarEventFeed($query); }
catch (Zend_Gdata_App_Exception $e) { return; }

我愿意接受任何以升序排列所有公共事件的替代方法。我试过RSS,但日期似乎是他们被添加到日历中的时间。

2 个答案:

答案 0 :(得分:6)

投影是我以前玩过的东西。它没有帮助(除非我想手动解析和爆炸重复事件)。但是that link是金色的。

$query->setParam('singleevents','true');

来自他们的文档:

  

单一事件

     

指示是否重复发生事件   应该扩展或表示为   单一事件。

     

有效值为true(展开   反复发生的事件)或假(离开   经常性事件表示为单一事件   事件)。默认为false。

在我看来,false是一个愚蠢的默认,但是嘿嘿。它现在似乎有用了!

答案 1 :(得分:1)

更改此内容:

$query->setProjection('full');

对此:

$query->setProjection('composite');

将为您提供各种额外数据,包括重复发生的事件。这是根据Google Calendar API参考:http://code.google.com/apis/calendar/docs/2.0/reference.html