我正试图通过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,但日期似乎是他们被添加到日历中的时间。
答案 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