2012-03-22 52 views
2

我在写一个PHP脚本,负责从项目管理系统中检索日历事件,并将它们与用户的Google日历同步。我的代码能够创建事件并将它们推送到Google日历,但是我遇到的问题是可以使用相同的参数多次创建事件。我的代码来创建事件如下(它从谷歌日历API文档的):将事件插入Google日历正在创建重复项(php)

$event = new Event(); 
$event->setSummary('Appointment'); 
$event->setLocation('Somewhere'); 
$start = new EventDateTime(); 
$start->setDateTime('2012-03-21T10:00:00.000-04:00'); 
$event->setStart($start); 
$end = new EventDateTime(); 
$end->setDateTime('2012-03-21T11:25:00.000-04:00'); 
$event->setEnd($end); 
$attendees = array($attendee1); 
$event->attendees = $attendees; 

$createdEvent = $calendarService->events->insert('myCalendarId', $event); 

如果我运行这段代码,它会创建活动的要求。现在,也许我没有正确执行此操作,但这是我将用于同步日历的代码。我将在用户浏览网站时运行此代码,但问题是它已创建的任何事件只会重新创建。

澄清:用户在25日上午11点开会。代码运行,并将该会议插入Google。代码的下一次迭代将再次插入相同的会议。

如何查看Google中创建的事件是否与当前系统中的事件相同?我可以枚举来自Google的事件,这些事件确实暴露了ID和电子标签,但它们与我的系统中尚未添加的相同事件不一样...

有人吗?

回答

1

每个事件都有一个唯一的ID。在创建新事件时,Google日历会返回创建的事件。您必须保存该ID才能在将来更新此事件。 试试这个..

$calendarService->events->update($calendarId, $eventId, Event $postBody, $optParams = array()) 
0

我知道这个问题是像3岁了,但我想我有一个简单的解决方案。

将事件标记在您自己的数据库中。因此,下次运行导出时,它不会被拾取,因为您知道它已经被导出。

祝你好运。

+0

我不再为该公司工作了,不幸的是... – Brandon 2015-09-01 14:30:26

相关问题