Google Calendar - Visualizzazione eventi ricorrenti come eventi normali
-
18-09-2019 - |
Domanda
Sto cercando di mostrare un elenco di eventi nei prossimi 20 giorni da un account Google Calendar. Esasperante eventi ricorrenti non vengono mostrati (presumo perché i loro orari di inizio sono vecchi) ... So. Tutte le idee?
require_once dirname(__FILE__).'/../../../Zend/Loader.php';
Zend_Loader::loadClass('Zend_Gdata');
Zend_Loader::loadClass('Zend_Gdata_HttpClient');
Zend_Loader::loadClass('Zend_Gdata_Calendar');
$service = new Zend_Gdata_Calendar();
$query = $service->newEventQuery();
$query->setUser('REMOVED');
$query->setVisibility('public');
$query->setProjection('full');
$query->setOrderby('starttime');
$query->setSortOrder('ascending');
$query->setFutureevents('true');
$query->setMaxResults(20);
try { $eventFeed = $service->getCalendarEventFeed($query); }
catch (Zend_Gdata_App_Exception $e) { return; }
Sono disposto ad accettare eventuali metodi alternativi che ottengono tutti i miei eventi pubblici in ordine crescente. Ho provato RSS ma le date sembrano essere il momento in cui sono stati aggiunti al calendario.
Soluzione
La proiezione è qualcosa che ho giocato prima. Non aiuta (a meno che non voglio analizzare ed esplodere eventi ricorrenti manualmente). Ma che puntano era d'oro.
$query->setParam('singleevents','true');
Da loro documenti:
singleevents
Indica se gli eventi ricorrenti dovrebbe essere ampliato o rappresentato come evento singolo.
I valori validi sono vere (si espandono eventi ricorrenti) o false (lasciare eventi ricorrenti rappresentati come singolo eventi). Il valore predefinito è falso.
A mio parere, è uno stupido false
predefinita ma hey-ho. E sembra funzionare ora!
Altri suggerimenti
La modifica di questo:
$query->setProjection('full');
Per questo:
$query->setProjection('composite');
Vi darà tutti i tipi di dati aggiuntivi, tra cui eventi ricorrenti. Questo è per il riferimento API di Google Calendar: http://code.google .com / apis / calendar / docs / 2.0 / reference.html