5

我正在尝试显示来自 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,但日期似乎是它们被添加到日历的时间。

4

2 回答 2

6

投影是我以前玩过的东西。它没有帮助(除非我想手动解析和分解重复事件)。但是那个链接是金色的。

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

从他们的文档中:

单项赛事

指示是否应扩展重复事件或将其表示为单个事件。

有效值为 true(扩展重复事件)或 false(将重复事件表示为单个事件)。默认为假。

在我看来,false这是一个愚蠢的默认设置,但是嘿嘿。它现在似乎工作了!

于 2009-08-19T12:31:29.277 回答
1

改变这个:

$query->setProjection('full');

对此:

$query->setProjection('composite');

会给你各种额外的数据,包括重复发生的事件。这是根据 Google 日历 API 参考:http ://code.google.com/apis/calendar/docs/2.0/reference.html

于 2009-08-18T19:54:38.717 回答