使用 Google Calendar API 版本 3。我一次可以添加一个事件,但我想一次添加多个事件。知道怎么做吗?我将 $authUrl 分配给下面的模板,用户点击一个链接,上面写着“将所有项目添加到谷歌日历”,授权谷歌可以访问该帐户,它返回到我的回调 URL,并分配了 $_GET['code']整个 $client->getAccessToken() block 被执行。
显然我现在使用的是虚拟数据,但我想用来自表达式引擎的数据填充字段。我有可用的数据,但为了这个问题的简单起见,我省去了废话并输入了测试数据。
此代码适用于一个事件:
$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@email.com');
$attendees = array($attendee1);
$event->attendees = $attendees;
$createdEvent = $cal->events->insert('primary', $event);
echo $createdEvent->getId();
$_SESSION['token'] = $client->getAccessToken();
}
我注意到有一个“事件类”我可以实例化(而不是仅仅实例化单个事件对象)并且它有一个 $items 成员变量。我猜我可以将一堆 Event 对象添加到 $item 成员变量,然后一次发送一堆事件,但似乎无法正确处理。有人有这方面的经验吗?
最佳答案
从PHP来看和 Java v3 的文档这是不可能的。 Calendar.Events
(在 Java 中)是 API 中日历事件相关方法的包装器:您可以要求它插入一个事件,但不能将其用作多个事件的表示,例如将它传递给服务器(用于批量插入)。
至少这是我目前得出的结论。 (我也可以使用该功能。)
关于PHP 谷歌日历 API : Adding Multiple Events at Once,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9439104/