2010-06-29 3 views
1

у меня возникают странные проблемы с Calendar API Google На календаре вопрос у меня есть несколько повторяющихся событий, начиная с марта (через PHP с Zend_Gdata.):Google Calendar 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

Каждый из этих повторов бесконечно, но имеет некоторые исключения в некоторые дни. Моя проблема заключается в том, что ни один из отмененных или измененных экземпляров не возвращается API после 2010-07-15. В течение недели 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 не возвращать все отмененные/измененные события? Максимальные результаты не могут быть проблемой, поскольку в фиде есть только около 30 событий. Я в основном из идей.

Заранее спасибо.

ответ

1

Я убежден, что это ошибка в API календаря, и я в конечном итоге написал обходной путь для этого.

Я написал код для вычисления ожидаемых экземпляров события на основе данных начала и повторения, а затем сравним их с экземплярами массива when при повторении. Он создает объекты отмененного события, когда есть ожидаемый экземпляр, но он отсутствует в массиве when.