SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

WordCamp Cantabria - Código mantenible con WordPress
WordCamp Cantabria  - Código mantenible con WordPressWordCamp Cantabria  - Código mantenible con WordPress
WordCamp Cantabria - Código mantenible con WordPressAsier Marqués
 
Curso AngularJS - 3. módulos y controladores
Curso AngularJS - 3. módulos y controladoresCurso AngularJS - 3. módulos y controladores
Curso AngularJS - 3. módulos y controladoresÁlvaro Alonso González
 
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 jQueryJavier P.
 
Silex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHPSilex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHPJavier Eguiluz
 
Código mantenible, en Wordpress.
Código mantenible, en Wordpress.Código mantenible, en Wordpress.
Código mantenible, en Wordpress.Asier Marqués
 
Desymfony 2011 - Introducción a Symfony2
Desymfony 2011 - Introducción a Symfony2Desymfony 2011 - Introducción a Symfony2
Desymfony 2011 - Introducción a Symfony2Javier Eguiluz
 
jQuery Mobile :: Cuadros de diálogo
jQuery Mobile :: Cuadros de diálogojQuery Mobile :: Cuadros de diálogo
jQuery Mobile :: Cuadros de diálogojubacalo
 
Acciones JSP
Acciones JSPAcciones JSP
Acciones JSPjubacalo
 
Procesar estado
Procesar estadoProcesar estado
Procesar estadoLismirabal
 
Curso de Django | Django Course
Curso de Django | Django CourseCurso de Django | Django Course
Curso de Django | Django Coursealeperalta
 
Wp config.php
Wp config.phpWp config.php
Wp config.phpgregozz
 

Was ist angesagt? (20)

WordCamp Cantabria - Código mantenible con WordPress
WordCamp Cantabria  - Código mantenible con WordPressWordCamp Cantabria  - Código mantenible con WordPress
WordCamp Cantabria - Código mantenible con WordPress
 
Curso AngularJS - 3. módulos y controladores
Curso AngularJS - 3. módulos y controladoresCurso AngularJS - 3. módulos y controladores
Curso AngularJS - 3. módulos y controladores
 
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
 
Silex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHPSilex, desarrollo web ágil y profesional con PHP
Silex, desarrollo web ágil y profesional con PHP
 
Introducción a DJango
Introducción a DJangoIntroducción a DJango
Introducción a DJango
 
Código mantenible, en Wordpress.
Código mantenible, en Wordpress.Código mantenible, en Wordpress.
Código mantenible, en Wordpress.
 
Desymfony 2011 - Introducción a Symfony2
Desymfony 2011 - Introducción a Symfony2Desymfony 2011 - Introducción a Symfony2
Desymfony 2011 - Introducción a Symfony2
 
jQuery Mobile :: Cuadros de diálogo
jQuery Mobile :: Cuadros de diálogojQuery Mobile :: Cuadros de diálogo
jQuery Mobile :: Cuadros de diálogo
 
Acciones JSP
Acciones JSPAcciones JSP
Acciones JSP
 
Procesar estado
Procesar estadoProcesar estado
Procesar estado
 
Curso de Django | Django Course
Curso de Django | Django CourseCurso de Django | Django Course
Curso de Django | Django Course
 
Crear modulos
Crear modulosCrear modulos
Crear modulos
 
Backend (sf2Vigo)
Backend (sf2Vigo)Backend (sf2Vigo)
Backend (sf2Vigo)
 
Wp config.php
Wp config.phpWp config.php
Wp config.php
 
Php2
Php2 Php2
Php2
 
Angularjs Lógica de negocio
Angularjs Lógica de negocioAngularjs Lógica de negocio
Angularjs Lógica de negocio
 
(Muy breve) Introduccion a jQuery
(Muy breve) Introduccion a jQuery(Muy breve) Introduccion a jQuery
(Muy breve) Introduccion a jQuery
 
Introducción a los hooks
Introducción a los hooksIntroducción a los hooks
Introducción a los hooks
 
Curso Jsp
Curso JspCurso Jsp
Curso Jsp
 

Ähnlich wie APIs Google Calendar guía programador

Ähnlich wie APIs Google Calendar guía programador (20)

Grails
GrailsGrails
Grails
 
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
 
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
 
Codemotion 2017 - Taller de JHipster
Codemotion 2017 - Taller de JHipsterCodemotion 2017 - Taller de JHipster
Codemotion 2017 - Taller de JHipster
 
Construyendo una app Android sobre la nube App Engine
Construyendo una app Android sobre la nube App EngineConstruyendo una app Android sobre la nube App Engine
Construyendo una app Android sobre la nube App Engine
 
Seguridad
SeguridadSeguridad
Seguridad
 

Mehr von 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
 

Mehr von 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
 

Kürzlich hochgeladen

La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxjosetrinidadchavez
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxPryhaSalam
 
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
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzprofefilete
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
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
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscaeliseo91
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dstEphaniiie
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 

Kürzlich hochgeladen (20)

La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptxOLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
OLIMPIADA DEL CONOCIMIENTO INFANTIL 2024.pptx
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptxEXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.pptx
EXPANSIÓN ECONÓMICA DE OCCIDENTE LEÓN.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.
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyzel CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
el CTE 6 DOCENTES 2 2023-2024abcdefghijoklmnñopqrstuvwxyz
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Medición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptxMedición del Movimiento Online 2024.pptx
Medición del Movimiento Online 2024.pptx
 
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
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
la unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fiscala unidad de s sesion edussssssssssssssscacio fisca
la unidad de s sesion edussssssssssssssscacio fisca
 
Dinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes dDinámica florecillas a María en el mes d
Dinámica florecillas a María en el mes d
 
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
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.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