2012-03-22 49 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

相關問題