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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top