API календаря Google не возвращает все отмененные события - PullRequest
1 голос
/ 30 июня 2010

У меня странная проблема с API Календаря Google (через PHP с Zend_Gdata.) В рассматриваемом календаре у меня есть несколько повторяющихся событий, начинающихся в марте:

  • 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 Ответ

1 голос
/ 31 июля 2010

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

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

...