2012-02-24 183 views
3

使用Google日历API的版本3。我一次可以添加一个事件,但我想一次添加多个事件。任何想法如何做到这一点?我将$ authUrl分配到我的模板下面,用户点击一个链接,指出“将所有项目添加到谷歌日历”,授权Google可以访问该帐户,它会返回到我的回调URL,并带有$ _GET ['code']整个$ client-> getAccessToken()块被执行。PHP Google日历API:一次添加多个活动

显然我现在正在使用虚拟数据,但我想用来自表达式引擎的数据填充字段。我有这些数据,但为了简化这个问题,省去了废话并输入了测试数据。

此代码为一个事件:

$client = new apiClient(); 
$client->setApplicationName("Band Calendar"); 
$cal = new apiCalendarService($client); 

if (isset($_GET['logout'])) { 
    unset($_SESSION['token']); 
} 

if (isset($_GET['code'])) { 
    $client->authenticate(); 
    $_SESSION['token'] = $client->getAccessToken(); 
    header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']); 
} 

if (isset($_SESSION['token'])) { 
    $client->setAccessToken($_SESSION['token']); 
} 

$authUrl = $client->createAuthUrl(); 

if ($client->getAccessToken()) { 

$event = new Event(); 
$event->setSummary("test title"); 
$event->setLocation("test location"); 
$start = new EventDateTime(); 
$start->setDateTime('2012-03-03T09:25:00.000-05:00'); 
$event->setStart($start); 
$end = new EventDateTime(); 
$end->setDateTime('2012-03-03T10:25:00.000-05:00'); 
$event->setEnd($end); 
$attendee1 = new EventAttendee(); 
$attendee1->setEmail('[email protected]'); 
$attendees = array($attendee1); 
$event->attendees = $attendees; 
$createdEvent = $cal->events->insert('primary', $event); 

echo $createdEvent->getId(); 

$_SESSION['token'] = $client->getAccessToken(); 
} 

我注意到,有一个“类事件”,我可以实例化(而不仅仅是实例化一个单一的事件对象),并且它有一个$项目成员变量。我在猜测我可以将一堆Event对象添加到$ item成员变量中,然后一次发送一堆事件,但似乎无法做到。任何人都有这方面的经验?

回答

0

PHPJava文档来看,这是不可能的。 Calendar.Events(在Java中)是API中与日历的事件相关的方法的一个包装:您可以要求它插入一个事件,但不能将其用作几个事件的表示,例如将它传递给服务器(用于批量插入)。

至少这是我现在总结的。 (我也可以使用该功能。)