PHP  »  Articoli  »  Zend Framework 

Interagire con Google Calendar attraverso Zend GData

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.

Interagire attivamente con gli eventi

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.

Guide PHP

Guida Yii Framework

Come creare applicazioni Web in modo semplice e veloce con il...

Guida Zend Framework

Diventate professionisti dello sviluppo Web. Zend Framework è lo...

Guida Applicazioni Facebook con PHP

Come realizzare un'applicazione per Facebook. Dalle basi della...

Altre guide

Newsletter @PHP

Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso PHP per Webmaster

11 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti