di: Gabriele Farina 19 Luglio 2007
Nello scorso articolo abbiamo parlato di come sia possibile utilizzare le API GData attraverso lo Zend Framework al fine di connettersi al servizio Google Calendar e recuperare informazioni sugli eventi registrati. Abbiamo visto come sia possibile effettuare autenticazioni anonime in modo da accedere in lettura solamente ai calendari pubblici e come invece autenticarsi al fine di poter prelevare informazioni sui calendari privati e potervi interagire. In questo articolo ci occuperemo in dettaglio delle operazioni di modifica e rimozione degli eventi all'interno di un calendario, fornendo dei semplici esempi atti a spiegare meglio l'utilizzo delle API.
Nel codice degli esempi ho omesso, per brevità, le istruzioni di inclusione e delle di autenticazione. Nel caso fosse necessaria una ripassata del codice necessario, o nel caso in cui non abbiate avuto modo di leggerlo altrove, potete leggere le prime pagine dell'articolo precedente che illustrano con qualche esempio il concetto.
Un'API non è completa se non fornisce delle funzionalità che permettano di interagire con le fonti di dato in modo da poterle modificare; ancora meglio se le operazioni sono limitate in base a permessi attribuiti ad utenti specifici. Una volta ottenuta un'istanza della servizio Google Calendar attraverso un processo di autenticazione che ci fornisca i privilegi per accedere in modifica ai calendari privati, è possibile operare con questa finalità in modo molto semplice. Le proprietà di un elemento di un feed (nel nostro caso l'Entry che rappresenta un evento, ma il concetto vale anche per altri tipi di Entry) possono essere accedute anche in modalità scrittura e le modifiche possono essere applicate attraverso il metodo .save
I valori delle proprietà, come nel caso del processo di creazione, devono essere generati attraverso i metodi specifici forniti dal servizio, che creeranno i tipi di dato corretti partendo da tipi di dato più semplici; in questo modo il processo di assegnamento dei nuovi valori sarà molto simile a quello di creazione di una nuova Entry e non dovremo preoccuparci di utilizzare direttamente eventuali oggetti utilizzati per rappresentare proprietà complesse.
Vediamo un semplice esempio di modifica di un'Entry rappresentante un evento.:
<?php // ... import omessi per brevità $user = 'username'; $pass = 'password'; $client = Zend_Gdata_ClientLogin::getHttpClient( $user, $pass, Zend_Gdata_Calendar::AUTH_SERVICE_NAME); $calendar_service = new Zend_Gdata_Calendar($client); $query = $calendar_service->newEventQuery(); $query->setUser('default'); $query->setVisibility('private'); $query->setProjection('full'); $query->setOrderby('starttime'); $query->setFutureEvents('true'); try { $eventFeed = $calendar_service->getCalendarEventFeed($query); // ora posso applicare le modifiche ad una entry specifica $event = $eventFeed[0]; $event->title = $service->newTitle("Titolo dell'evento modificato"); $event->save(); } catch (Zend_Gdata_App_Exception $e) { echo "Error: " . $e->getResponse(); } ?>
In questo caso abbiamo effettuato una semplice query (riciclata dall'articolo precedente) in modo da ottenere un set di eventi specifici, ed abbiamo modificato il primo di questi eventi variandone il titolo. Ovviamente tutte le proprietà possono essere modificate, anche quelle più complesse come when al fine di variare gli intervalli di tempo nel quali avverrà l'evento selezionato. Il metodo save() dell'entry che si sta modificando effettua effettivamente il salvataggio del nuovo stato sul server di Google Calendar, generando un'eccezione (Zend_Gdata_App_Exception) nel caso ci fossero degli errori.
Guida Yii FrameworkCome creare applicazioni Web in modo semplice e veloce con il... |
Guida Zend FrameworkDiventate professionisti dello sviluppo Web. Zend Framework è lo... |
Guida Applicazioni Facebook con PHPCome realizzare un'applicazione per Facebook. Dalle basi della... |
Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.
Iscriviti alla newsletter
|
|
Corso PHP per Webmaster11 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base25 Giugno 2012 a Milano |
|
|
Corso Google AdWords Base05 Giugno 2012 a Roma |