Google Calendar Gdata старое повторяющееся событие удаленное событие, которое все еще отображается с EventID, заканчивающимся на Z

Я пытался найти в Google этот вопрос, но безуспешно, возможно, из-за того, что строка поиска "Z" недостаточно конкретна.

Фон:
Используя Google Calendar Zend gdata library, и использовали простой код для составления списка событий за определенный период времени. В этом случае с 27-02-2012 по 03-03-2012. У меня было несколько отдельных событий, с одним повторяющимся событием под названием "Роб", еженедельно.
Я использую основной код без каких-либо модных дополнений. еще:)

Проблема:
когда я использовал $query->setSingleEvents(TRUE) Параметр, все работает как положено, и показывает правильные события.

Когда я говорю о "показе" событий, я говорю о странице PHP, которая использует Zend gdata для отображения событий календаря.
Во всех ситуациях графический пользовательский интерфейс Календаря Google показывает правильные данные (т. Е. Событие "Роб" не отображается, так как оно было удалено).

Но когда я установил это FALSE повторяющееся событие "Rob" должно иметь время начала, которое должно быть сгруппировано, но вместо этого несколько дополнительных случайных событий отображаются без starttime точно такой же заголовок. Даже если я удалил повторяющееся событие, оно все равно отображается в данных, возвращаемых gdata.

Интересное наблюдение
EventID для события, которое было удалено, но все еще отображается на странице, заканчивается буквой "Z". Он имеет обычный eventID, за которым следует: _20120302T030000Z

Мой вопрос
Это событие было удалено в графическом интерфейсе Google Calendar. Почему gdata по-прежнему показывает событие, которое было удалено, и что означает вечер, заканчивающийся отметкой времени и Z.

Попытки разрешения:
1. Пытался изменить его с повторяющегося события на обычное событие (удалив повторение "для всех событий в серии"
Не повезло, все еще дополнительные в списке.
2. полностью удалил повторяющееся событие для всех событий в серии.
Это снова показало правильные результаты в SingleEvents(TRUE), но в FALSE старое событие "Роб" все еще отображается, когда оно полностью удалено из календаря.

Код:

function outputCalendarByDateRange($client, $startDate='2012-02-27',
                                   $endDate='2012-03-03')
{
  $gdataCal = new Zend_Gdata_Calendar($client);
  $query = $gdataCal->newEventQuery();
  $query->setUser('default');
  $query->setVisibility('private');
  $query->setProjection('full');
  $query->setOrderby('starttime');
  $query->setStartMin($startDate);
  $query->setStartMax($endDate);
  $query->setSingleEvents(FALSE);
  $eventFeed = $gdataCal->getCalendarEventFeed($query);

  foreach ($eventFeed as $event) {
    echo "Title: " . $event->title->text . "<br />";
    echo "Event ID: " . $event->id->text . "<br />";
    foreach ($event->when as $when) {
      echo "Start: " . $when->startTime . "<br />";
    }
    echo "<br />";
  }
}

1 ответ

Вот что я нашел в документации:

36.5.6. Удаление событий События календаря можно удалить, вызвав метод delete() службы календаря и предоставив URL-адрес редактирования события, или вызвав собственный метод delete() существующего события.

В любом случае удаленное событие все равно будет отображаться в частной ленте событий пользователя, если указан параметр запроса updateMin. Удаленные события можно отличить от обычных событий, поскольку для их свойства eventStatus будет установлено значение "http://schemas.google.com/g/2005#event.canceled".

Похоже, вам придется проверять состояние события при анализе вашего канала.

Кстати, отметка времени разбивается на

год:2012 день:03 месяц:02 время:T часы: минуты: секунды 03:00:00 зулу:Z

Зулус такой же, как GMT (среднее время по Гринвичу) или UTC (универсальный временной код)

Другие вопросы по тегам