SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
APIs de Google Calendar
Guía del programador v 1.0




                             Grupo # 5

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

 El Protocolo de datos de Google permite
 a los desarrolladores crear aplicaciones
 que accedan a todas las funciones de
 Google Calendar.
Diagrama de Google API
Puedes utilizar esta API para:
 Añadir eventos futuros de forma
 programada a Google Calendar para
 anunciarlos

 Crear una aplicación para sincronizar
 Google Calendar y dispositivos móviles

 Crear Combinaciones con otras APIs
 como Google Maps o Youtube
Integración Calendario Google en
su Pagina Web
Ejemplo de Protocolo Google API
Lenguajes de Programación

 .NET
 Java
 JavaScript
 PHP
 Python
PHP
 Zend Google Data Client Library

 http://framework.zend.com/download/gdata

 Setear include_path en php.ini

 Habilitar Windows Extensions
 ◦ extension=php_openssl.dll
Vista grafica de Librería Zend
Aspectos Generales
 Estas interfaces utilizan 2 formatos de
 sindicación estándar basados en XML:

 ◦ Atom
    Es mas reciente y tiene mas funciones


 ◦ RSS
    Es mas antiguo y tiene varias versiones
ZendGdata-
ZendGdata-1.9.2 Library
php.ini
Checker
Acceso al núcleo
 Este código solicita acceso al núcleo de la clase Zend_Gdata

 Dependiendo de la aplicación se elige el método de autenticación

 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
 Autenticación
 ◦ AuthSub Proxy
 ◦ Magic cookie
 ◦ ClientLogin User/Password

 $user = 'andresloor@gmail.com';
 $pass = ‘**********';
 $service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
 $client = Zend_Gdata_ClientLogin::getHttpClient($user,$pass,$service);
Taller Práctico
 Consultar Lista de Calendario

 $gdataCal = new Zend_Gdata_Calendar($client);
 $calFeed = $gdataCal->getCalendarListFeed();
 echo '<h1>' . $calFeed->title->text . '</h1>‘;
 foreach ($calFeed as $calendar) {
   echo '<li>' . $calendar->title->text .
   echo '<li>‘ . $calendar->id->text ;
   }
Taller Práctico
  Consultar Eventos
   ◦ Sin parámetros de consulta

$gdataCal = new Zend_Gdata_Calendar($client);
$eventFeed = $gdataCal->getCalendarEventFeed();
foreach ($eventFeed as $event) {
echo "t<li>" . $event->title->text . " (" . $event->id->text . ")n";
   foreach ($event->when as $when) {
     echo "ttt<li>Starts: " . $when->startTime . "</li>n“;
  }
}
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->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 "ttt<li>Starts: " . $when->startTime . "</li>n“;
     }
 }
Taller Práctico
 ◦ Consulta Completa

  $gdataCal = new Zend_Gdata_Calendar($client);
  $query = $gdataCal->newEventQuery();
  $query->setUser('default');
  $query->setVisibility('private');
  $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 "ttt<li>Starts: " . $when->startTime . "</li>n“;
     }
   }
Taller Práctico
 Crear Eventos
 ◦ Simple

  $gdataCal = new Zend_Gdata_Calendar($client);
  $newEvent = $gdataCal->newEventEntry();
  $newEvent->title = $gdataCal->newTitle($title);
  $newEvent->where = array($gdataCal->newWhere($where));
  $newEvent->content = $gdataCal->newContent("$desc");
  $when = $gdataCal->newWhen();
  $when->startTime = "{$startDate}T{$startTime}:00.000{$tzOffset}:00";
  $when->endTime = "{$endDate}T{$endTime}:00.000{$tzOffset}:00";
  $newEvent->when = array($when);
  $createdEvent = $gdataCal->insertEvent($newEvent);
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);


 ◦ Contenido Web

 ◦ Recurrentes
Taller Práctico
   Actualizar Eventos
$gdataCal = new Zend_Gdata_Calendar($client);
$eventOld =
$gdataCal->getCalendarEventEntry('http://www.google.com/calendar/feeds/default/private/full/' . $eventId);

    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
 Eliminar Eventos

$gdataCal = new Zend_Gdata_Calendar($client);
$event = $gdataCal->getCalendarEventEntry('http://www.google.com/
 calendar/feeds/default/private/full/q98ske4cbpj0egqcmkuce1bdgc');
$event->delete();
Ejemplos de Calendario


 http://localhost/prueba/pruebacalendario.php



 http://gcal.appspot.com/calvis/demo2.html
Preguntas

Más contenido relacionado

Similar a APIs Google Calendar guía programador

Similar a APIs Google Calendar guía programador (20)

Grails
GrailsGrails
Grails
 
Desarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQueryDesarrollo de aplicaciones web usando Catalyst y jQuery
Desarrollo de aplicaciones web usando Catalyst y jQuery
 
Curso AngularJS - 7. temas avanzados
Curso AngularJS - 7. temas avanzadosCurso AngularJS - 7. temas avanzados
Curso AngularJS - 7. temas avanzados
 
Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain Symfony en Drupal 8 - DrupalCamp Spain
Symfony en Drupal 8 - DrupalCamp Spain
 
Android bootcamp 101 v2.0
Android bootcamp 101 v2.0Android bootcamp 101 v2.0
Android bootcamp 101 v2.0
 
6.angular js
6.angular js6.angular js
6.angular js
 
Gwt III - Avanzado
Gwt III - AvanzadoGwt III - Avanzado
Gwt III - Avanzado
 
GWT
GWTGWT
GWT
 
Desarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQueryDesarrollando aplicaciones web usando Catalyst y jQuery
Desarrollando aplicaciones web usando Catalyst y jQuery
 
APIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptxAPIREST LARAVEL Y PHP.pptx
APIREST LARAVEL Y PHP.pptx
 
Ajax Huancayo
Ajax HuancayoAjax Huancayo
Ajax Huancayo
 
Modelo vista controlador
Modelo vista controladorModelo vista controlador
Modelo vista controlador
 
Introducción a Kohana Framework
Introducción a Kohana FrameworkIntroducción a Kohana Framework
Introducción a Kohana Framework
 
Introducción a AngularJS
Introducción a AngularJS Introducción a AngularJS
Introducción a AngularJS
 
Taller introduccion symfony2
Taller introduccion symfony2Taller introduccion symfony2
Taller introduccion symfony2
 
Metadata api en apex
Metadata api en apexMetadata api en apex
Metadata api en apex
 
Symfony parte 15 Consultas y Migración
Symfony parte 15 Consultas y MigraciónSymfony parte 15 Consultas y Migración
Symfony parte 15 Consultas y Migración
 
Servicios web
Servicios webServicios web
Servicios web
 
MODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHPMODELO VISTA CONTROLADOR EN PHP
MODELO VISTA CONTROLADOR EN PHP
 
Gwt II - trabajando con gwt
Gwt II - trabajando con gwtGwt II - trabajando con gwt
Gwt II - trabajando con gwt
 

Más de jvelizster

Produccion Global
Produccion GlobalProduccion Global
Produccion Globaljvelizster
 
Cien Mejorque Uno
Cien Mejorque UnoCien Mejorque Uno
Cien Mejorque Unojvelizster
 
Google Analytics
Google AnalyticsGoogle Analytics
Google Analyticsjvelizster
 
Los Pioneros de la Producción entre iguales
Los Pioneros de la Producción entre igualesLos Pioneros de la Producción entre iguales
Los Pioneros de la Producción entre igualesjvelizster
 
El Lugar De Trabajo Wiki
El Lugar De Trabajo WikiEl Lugar De Trabajo Wiki
El Lugar De Trabajo Wikijvelizster
 
Mentes Colaborativas
Mentes ColaborativasMentes Colaborativas
Mentes Colaborativasjvelizster
 
Los Neo Alejandrinos
Los Neo AlejandrinosLos Neo Alejandrinos
Los Neo Alejandrinosjvelizster
 
La Tormenta Perfecta
La Tormenta PerfectaLa Tormenta Perfecta
La Tormenta Perfectajvelizster
 
Plataformas para la Participación
Plataformas para la ParticipaciónPlataformas para la Participación
Plataformas para la Participaciónjvelizster
 

Más de jvelizster (19)

API de Gadget
API de GadgetAPI de Gadget
API de Gadget
 
Api Podcast
Api PodcastApi Podcast
Api Podcast
 
Produccion Global
Produccion GlobalProduccion Global
Produccion Global
 
Api Facebook
Api FacebookApi Facebook
Api Facebook
 
Dspace
DspaceDspace
Dspace
 
Google Maps
Google MapsGoogle Maps
Google Maps
 
Cien Mejorque Uno
Cien Mejorque UnoCien Mejorque Uno
Cien Mejorque Uno
 
API Twitter
API TwitterAPI Twitter
API Twitter
 
API Flickr
API FlickrAPI Flickr
API Flickr
 
Google Analytics
Google AnalyticsGoogle Analytics
Google Analytics
 
UStream Appi
UStream AppiUStream Appi
UStream Appi
 
Los Pioneros de la Producción entre iguales
Los Pioneros de la Producción entre igualesLos Pioneros de la Producción entre iguales
Los Pioneros de la Producción entre iguales
 
El Lugar De Trabajo Wiki
El Lugar De Trabajo WikiEl Lugar De Trabajo Wiki
El Lugar De Trabajo Wiki
 
Prosumidores
ProsumidoresProsumidores
Prosumidores
 
Mentes Colaborativas
Mentes ColaborativasMentes Colaborativas
Mentes Colaborativas
 
Los Neo Alejandrinos
Los Neo AlejandrinosLos Neo Alejandrinos
Los Neo Alejandrinos
 
La Tormenta Perfecta
La Tormenta PerfectaLa Tormenta Perfecta
La Tormenta Perfecta
 
Plataformas para la Participación
Plataformas para la ParticipaciónPlataformas para la Participación
Plataformas para la Participación
 
IdeáGoras
IdeáGorasIdeáGoras
IdeáGoras
 

Último

Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFlor Idalia Espinoza Ortega
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxMapyMerma1
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfvictorbeltuce
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 

Último (20)

Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamica
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
Procesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptxProcesos Didácticos en Educación Inicial .pptx
Procesos Didácticos en Educación Inicial .pptx
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdfMapa Mental de estrategias de articulación de las areas curriculares.pdf
Mapa Mental de estrategias de articulación de las areas curriculares.pdf
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.Defendamos la verdad. La defensa es importante.
Defendamos la verdad. La defensa es importante.
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 

APIs Google Calendar guía programador

  • 1. APIs de Google Calendar Guía del programador v 1.0 Grupo # 5 Paul Villacreses Andrés Loor
  • 2. Agenda Visión General ¿Qué es el API de Google Calendar? Diagrama de Google API Lenguajes de Programación PHP Librería ZendGdata Configuración y prueba Acceso al núcleo Taller Práctico Ejemplos de Calendario Preguntas
  • 4. ¿Que es el API de Google Calendar? El Protocolo de datos de Google permite a los desarrolladores crear aplicaciones que accedan a todas las funciones de Google Calendar.
  • 6. Puedes utilizar esta API para: Añadir eventos futuros de forma programada a Google Calendar para anunciarlos Crear una aplicación para sincronizar Google Calendar y dispositivos móviles Crear Combinaciones con otras APIs como Google Maps o Youtube
  • 8. Ejemplo de Protocolo Google API
  • 9. Lenguajes de Programación .NET Java JavaScript PHP Python
  • 10. PHP Zend Google Data Client Library http://framework.zend.com/download/gdata Setear include_path en php.ini Habilitar Windows Extensions ◦ extension=php_openssl.dll
  • 11. Vista grafica de Librería Zend
  • 12. Aspectos Generales Estas interfaces utilizan 2 formatos de sindicación estándar basados en XML: ◦ Atom Es mas reciente y tiene mas funciones ◦ RSS Es mas antiguo y tiene varias versiones
  • 16. Acceso al núcleo Este código solicita acceso al núcleo de la clase Zend_Gdata Dependiendo de la aplicación se elige el método de autenticación 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');
  • 17. Taller Práctico Autenticación ◦ AuthSub Proxy ◦ Magic cookie ◦ ClientLogin User/Password $user = 'andresloor@gmail.com'; $pass = ‘**********'; $service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME; $client = Zend_Gdata_ClientLogin::getHttpClient($user,$pass,$service);
  • 18. Taller Práctico Consultar Lista de Calendario $gdataCal = new Zend_Gdata_Calendar($client); $calFeed = $gdataCal->getCalendarListFeed(); echo '<h1>' . $calFeed->title->text . '</h1>‘; foreach ($calFeed as $calendar) { echo '<li>' . $calendar->title->text . echo '<li>‘ . $calendar->id->text ; }
  • 19. Taller Práctico Consultar Eventos ◦ Sin parámetros de consulta $gdataCal = new Zend_Gdata_Calendar($client); $eventFeed = $gdataCal->getCalendarEventFeed(); foreach ($eventFeed as $event) { echo "t<li>" . $event->title->text . " (" . $event->id->text . ")n"; foreach ($event->when as $when) { echo "ttt<li>Starts: " . $when->startTime . "</li>n“; } }
  • 20. 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->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 "ttt<li>Starts: " . $when->startTime . "</li>n“; } }
  • 21. Taller Práctico ◦ Consulta Completa $gdataCal = new Zend_Gdata_Calendar($client); $query = $gdataCal->newEventQuery(); $query->setUser('default'); $query->setVisibility('private'); $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 "ttt<li>Starts: " . $when->startTime . "</li>n“; } }
  • 22. Taller Práctico Crear Eventos ◦ Simple $gdataCal = new Zend_Gdata_Calendar($client); $newEvent = $gdataCal->newEventEntry(); $newEvent->title = $gdataCal->newTitle($title); $newEvent->where = array($gdataCal->newWhere($where)); $newEvent->content = $gdataCal->newContent("$desc"); $when = $gdataCal->newWhen(); $when->startTime = "{$startDate}T{$startTime}:00.000{$tzOffset}:00"; $when->endTime = "{$endDate}T{$endTime}:00.000{$tzOffset}:00"; $newEvent->when = array($when); $createdEvent = $gdataCal->insertEvent($newEvent);
  • 23. 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); ◦ Contenido Web ◦ Recurrentes
  • 24. Taller Práctico Actualizar Eventos $gdataCal = new Zend_Gdata_Calendar($client); $eventOld = $gdataCal->getCalendarEventEntry('http://www.google.com/calendar/feeds/default/private/full/' . $eventId); 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);
  • 25. Taller Práctico Eliminar Eventos $gdataCal = new Zend_Gdata_Calendar($client); $event = $gdataCal->getCalendarEventEntry('http://www.google.com/ calendar/feeds/default/private/full/q98ske4cbpj0egqcmkuce1bdgc'); $event->delete();
  • 26. Ejemplos de Calendario http://localhost/prueba/pruebacalendario.php http://gcal.appspot.com/calvis/demo2.html