2010-06-29 48 views
1

我在與谷歌日曆API一個奇怪的問題全部取消事件,對有問題的日曆我在三月份開始多個經常性事件(通過PHP與Zend_Gdata):谷歌日曆API不返回

  • 2010-04-19 9:30 - 16:00
  • 2010-04-20 10:00 - 15:30
  • 2010-04-21 9:30 - 16:00
  • 2010-04-22 10:00 - 15:30
  • 2010-04-23 9:30 - 12:30

這些重複都是無限期的,但有些日子有例外。我的問題是2010-07-15後API沒有返回任何取消或修改的實例。在8月2日那一週內,所有這5次重複都會被取消,並在Google日曆中顯示,但API現在不會返回例外情況。

我查詢用下面的代碼日曆:

$gc = new Zend_Gdata_Calendar($client); 

$query = $gc->newEventQuery(); 
$query->setUser(/*calendar ID goes here*/); 
$query->setVisibility('private'); 
$query->setProjection('full'); 
$query->setOrderby('starttime'); 
$query->setSortorder('ascending'); 
$query->setMaxResults(500); 

$query->setSingleEvents("false"); 

$query->setStartMin('2010-06-01 00:00:00'); 
$query->setStartMax('2010-09-20 00:00:00'); 
$query->setQuery(/*title of the events*/); 

return $gc->getCalendarEventFeed($query); 

得到的飼料包含了所有5次復發,而「取消」事件的對象爲所有被刪除的情況下可達2010-07-15他們隨意停藥。我應該注意到每個循環中的getWhen()數組包含正確的時間(即它省略了取消的日期),但由於我的程序編碼的方式,重要的是我可以訪問實際取消的事件對象。

什麼可能導致API不返回所有取消/修改的事件?由於Feed中只有大約30個事件,所以最大結果不會成爲問題。我基本上沒有想法。

在此先感謝。

回答

1

我確信這是日曆API中的一個錯誤,我最終爲此寫了一個解決方法。

我編寫了代碼來根據開始和重現數據計算事件的預期實例,然後將其與在循環中的when數組中的實例進行比較。當存在預期的實例時,它會創建取消的事件對象,但從when陣列中缺失。