Api De Google Calendar

jvelizster 6,049 views 27 slides Sep 18, 2009
Slide 1
Slide 1 of 27
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27

About This Presentation

No description available for this slideshow.


Slide Content

APIs de Google Calendar APIs de Google Calendar Guía del programador v 1.0
Grupo # 5
Paul Villacreses
Andrés Loor

Agenda Agenda
A
Visión General
A
¿Qué es el API de Google Calendar?
A
Diagrama de Google API
A
Lenguajes de Programación
A
PHP
A
PHP
A
Librería ZendGdata
A
Configuración y prueba
A
Acceso al núcleo
A
Taller Práctico
A
Ejemplos de Calendario
A
Preguntas

Visión General Visión General

¿Que es el API de Google Calendar? ¿Que es el API de Google Calendar?
A
El Protocolo de datos de Google permite 
a los desarrolladores crear aplicaciones 
que accedan a todas las funciones de  que accedan a todas las funciones de  Google Calendar.

Diagrama de Google API Diagrama de Google API

Puedes utilizar esta API para: Puedes utilizar esta API para:
A
Añadir eventos futuros de forma 
programada a Google Calendar para 
anunciarlos
A
Crear una aplicación para sincronizar 
Google Calendar y dispositivos móviles
A
Crear Combinaciones con otras APIs 
como Google Maps o Youtube

Integración Calendario Google en  Integración Calendario Google en 
su Pagina Web su Pagina Web

Ejemplo de Protocolo Google API Ejemplo de Protocolo Google API

Lenguajes de Programación Lenguajes de Programación A
.NET
A
Java
A
JavaScript
A
JavaScript
A
PHP
A
Python

PHPPHP
A
Zend Google Data Client Library
A
http://framework.zend.com/download/gdata
A
Setear include_path en php.ini
A
Habilitar Windows Extensions ◦
extension=php_openssl.dll

Vista grafica de Librería Zend Vista grafica de Librería Zend

Aspectos Generales Aspectos Generales
A
Estas interfaces utilizan 2 formatos de 
sindicación estándar basados en XML:

Atom

Atom P
Es mas reciente y tiene mas funciones

RSS P
Es mas antiguo y tiene varias versiones

ZendGdata ZendGdata--1.9.2 Library 1.9.2 Library

php.ini php.ini

Checker Checker

Acceso al núcleo Acceso al núcleo
A
Este código solicita acceso al núcleo de la clase Z end_Gdata
A
Dependiendo de la aplicación se elige el método de  autenticación require_once 'Zend/Loader.php';  require_once 'Zend/Loader.php';  Zend_Loader::loadClass('Zend_Gdata'); 
Zend_Loader::loadClass('Zend_Gdata_AuthSub'); 
Zend_Loader::loadClass('Zend_Gdata_ClientLogin'); 
Zend_Loader::loadClass('Zend_Gdata_Calendar');

Taller Práctico Taller Práctico
A
Autenticación ◦
AuthSubProxy

Magiccookie

ClientLogin
User
/
Password

ClientLogin
User
/
Password
$user = '[email protected]';
$pass = ‘**********';
$service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME; 
$client = Zend_Gdata_ClientLogin::getHttpClient($user,$pass, $service);

Taller Práctico Taller Práctico
A
Consultar Lista de Calendario
$gdataCal= new Zend_Gdata_Calendar($client); $
calFeed
= $
gdataCal
-
>
getCalendarListFeed
();
$
calFeed
= $
gdataCal
-
>
getCalendarListFeed
();
echo '<h1>' . $calFeed->title->text. '</h1>‘;  
foreach($calFeedas $calendar) {
echo '<li>' . $calendar->title->text.
echo '<li>‘ . $calendar->id->text;
}

Taller Práctico Taller Práctico A
Consultar
Eventos

Sin parámetros de consulta
$gdataCal = new Zend_Gdata_Calendar($client); $
eventFeed
= $
gdataCal
-
>
getCalendarEventFeed
();
$
eventFeed
= $
gdataCal
-
>
getCalendarEventFeed
();
foreach ($eventFeedas $event) {
echo "\t<li>" . $event->title->text .  " (" . $event ->id->text. ")\n";
foreach ($event->whenas $when) {
echo "\t\t\t<li>Starts: " . $when->startTime . "</li >\n“;   
}
}

Taller Práctico Taller Práctico

Para un rango de fechas especifico
$gdataCal = new Zend_Gdata_Calendar($client);
$query = $gdataCal->newEventQuery();
$query->setUser('default');
$query->setVisibility('private');
$query->setProjection('full');
$
query
-
>
setOrderby
('
starttime
');
$
query
-
>
setOrderby
('
starttime
');
$query->setStartMin($startDate);
$query->setStartMax($endDate);
$eventFeed = $gdataCal->getCalendarEventFeed($query);   
foreach ($eventFeed as $event) {
echo "\t<li>" . $event->title->text .  " (" . $event->id ->text . ")\n";
foreach ($event->when as $when) {
echo "\t\t\t<li>Starts: " . $when->startTime . "</li>\n“ ;   
}
}

Taller Práctico Taller Práctico

Consulta Completa
$gdataCal = new Zend_Gdata_Calendar($client);
$query = $gdataCal->newEventQuery();
$query->setUser('default');
$query->setVisibility('private');
$
query
-
>
setProjection
('full');
$
query
-
>
setProjection
('full');
$query->setQuery($fullTextQuery);
$eventFeed = $gdataCal->getCalendarEventFeed($query) ;  
foreach ($eventFeed as $event) {
echo "\t<li>" . $event->title->text.  " (" . $event ->id->text . ")\n“;    
foreach ($event->when as $when) {
echo "\t\t\t<li>Starts: " . $when->startTime . "</li >\n“;
}
}

Taller Práctico Taller Práctico
A
Crear Eventos ◦
Simple
$gdataCal = new Zend_Gdata_Calendar($client);
$newEvent = $gdataCal->newEventEntry();  
$newEvent->title = $gdataCal->newTitle($title);
$
newEvent
-
>
where

array
($
gdataCal
-
>
newWhere
($
where
));
$
newEvent
-
>
where

array
($
gdataCal
-
>
newWhere
($
where
));
$newEvent->content = $gdataCal->newContent("$desc");  
$when = $gdataCal->newWhen();
$when->startTime = "{$startDate}T{$startTime}:00.000{$tzOff set}:00";
$when->endTime = "{$endDate}T{$endTime}:00.000{$tzOffset}:00";  
$newEvent->when = array($when);
$createdEvent = $gdataCal->insertEvent($newEvent);

Taller Práctico Taller Práctico

Rápido
$gdataCal = new Zend_Gdata_Calendar($client);
$event = $gdataCal->newEventEntry();
$event->content = $gdataCal->newContent($quickAddText);
$event->quickAdd = $gdataCal->newQuickAdd('true');
$
newEvent
= $
gdataCal
-
>
insertEvent
($
event
);
$
newEvent
= $
gdataCal
-
>
insertEvent
($
event
);

Contenido Web

Recurrentes

Taller Práctico Taller Práctico
A
Actualizar Eventos
$gdataCal = new Zend_Gdata_Calendar($client);
$eventOld = 
$gdataCal->getCalendarEventEntry('http://www.google .com/calendar/feeds/default/private/full/' . $event Id);
echo  "Old title: " . $eventOld->title->text . "<br /> \n";
$
eventOld
-
>
title
= $
gdataCal
-
>
newTitle
($
newTitle
);
try {
$eventOld->save();
} catch (Zend_Gdata_App_Exception $e) {
var_dump($e);
return null;
}
$eventNew = 
$gdataCal>getCalendarEventEntry('http://www.google. com/calendar/feeds/default/private/full/' . 
$eventId);

Taller Práctico Taller Práctico
A
Eliminar Eventos
$gdataCal = new Zend_Gdata_Calendar($client);
$event = $gdataCal->getCalendarEventEntry('http://www.google .com/ 
calendar/
feeds
/default/
private
/full/q98ske4cbpj0egqcmkuce1bdgc');
calendar/
feeds
/default/
private
/full/q98ske4cbpj0egqcmkuce1bdgc');
$event->delete();

Ejemplos de Calendario Ejemplos de Calendario
A
http://localhost/prueba/pruebacalendario.php
A
http://gcal.appspot.com/calvis/demo2.html

Preguntas Preguntas Preguntas Preguntas