Ho cercato di rispondere a questa domanda, ma non ho avuto fortuna, forse perché la stringa di ricerca "Z" non è sufficientemente specifica.Evento ricorrente di Google Calendar Gdata vecchio evento ricorrente ancora visualizzato con un EventID che termina con Z
Background:
Utilizzando Google Calendar biblioteca GData Zend, e sono state utilizzando il codice semplice per elencare gli eventi per un periodo di tempo specifico. In questo caso, dal 27-02-2012 al 03-03-2012. Ho elencato un numero di singoli eventi, con un evento ricorrente, intitolato "Rob", settimanale settimanale.
Sto usando il codice base senza aggiunte fantasiose. ancora :)
Problema:
quando ho usato il parametro $query->setSingleEvents(TRUE)
, tutto ha funzionato come previsto, e ha mostrato gli eventi corretti.
Quando parlo di "mostrare" eventi, sto parlando della pagina PHP che sta usando Zend gdata per mostrare gli eventi del calendario.
In tutte le situazioni, il calendario GUI Google sta mostrando i dati corretti (es. L'evento 'Rob' non viene mostrato, come è stato eliminato.
Ma quando ho creato questo per FALSE
, l'evento ricorrente "Rob ", dovrebbero avere orari di inizio che devono essere raggruppati, ma invece vengono mostrati alcuni eventi casuali in più senza uno starttime
, lo stesso titolo. Anche una volta che è stato eliminato l'evento ricorrente, viene comunque visualizzato nei dati restituiti da gdata.
osservazione interessante
l'ID evento per l'evento che è stato eliminato, ma è ancora mostrato nella pagina finisce con "Z". Ha le solite eventID seguiti da: _20120302T030000Z
La mia domanda
Questo evento è stato eliminato in Google Calendar GUI. Perché gdata mostra ancora un evento che viene cancellato, e cosa significa l'eventid che termina con un timestamp e una Z.
Tentativi Risoluzione:
1. Ho cercato di cambiarlo da ricorrenti evento per un evento normale (rimuovendo il recurrance 'per tutti gli eventi in serie'
senza fortuna, ancora quelli aggiuntivi elencati
2. cancellati. l'evento ricorrente completamente per tutti gli eventi in serie.
Questo ha dimostrato ancora una volta i risultati corretti in SingleEvents(TRUE)
, ma in FALSE
, il vecchio evento 'Rob' è ancora mostrata, quando è stato completamente cancellato dal calendario.
Codice:
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 />";
}
}
Hai provato a verificare lo stato dell'evento, come qui ?: http://stackoverflow.com/questions/25849 78/google-calendar-feed-api-deleted-events – Ashley
Sembra quasi che qualcosa venga memorizzato nella cache ... –