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

La actualidad más candente

La actualidad más candente (17)

Abbott's Textual Analysis : Software Engineering 2
Abbott's Textual Analysis : Software Engineering 2Abbott's Textual Analysis : Software Engineering 2
Abbott's Textual Analysis : Software Engineering 2
 
Recursividad terminal
Recursividad terminalRecursividad terminal
Recursividad terminal
 
Longitud y Concatenacion
Longitud y ConcatenacionLongitud y Concatenacion
Longitud y Concatenacion
 
Objeto SqlDataReader
Objeto SqlDataReaderObjeto SqlDataReader
Objeto SqlDataReader
 
Guía 02. Ejercicios de teoría sobre SQL - José J Sánchez H
Guía 02. Ejercicios de teoría sobre SQL - José J Sánchez HGuía 02. Ejercicios de teoría sobre SQL - José J Sánchez H
Guía 02. Ejercicios de teoría sobre SQL - José J Sánchez H
 
Modelo de entidad relación extendido
Modelo de entidad relación extendidoModelo de entidad relación extendido
Modelo de entidad relación extendido
 
PHP - PDO.pdf
PHP - PDO.pdfPHP - PDO.pdf
PHP - PDO.pdf
 
7.1. procedimientos almacenados
7.1.  procedimientos almacenados7.1.  procedimientos almacenados
7.1. procedimientos almacenados
 
Objeto SqlDataAdapter
Objeto SqlDataAdapterObjeto SqlDataAdapter
Objeto SqlDataAdapter
 
ASP.NET WEB API
ASP.NET WEB APIASP.NET WEB API
ASP.NET WEB API
 
Diccionario de base de datos
Diccionario de base de datosDiccionario de base de datos
Diccionario de base de datos
 
Jmenubar
JmenubarJmenubar
Jmenubar
 
Php 101: PDO
Php 101: PDOPhp 101: PDO
Php 101: PDO
 
Ejemplos de entidad relacion
Ejemplos de entidad relacionEjemplos de entidad relacion
Ejemplos de entidad relacion
 
Métodos directos para solución de sistemas ecuaciones lineales
Métodos directos para solución de sistemas ecuaciones linealesMétodos directos para solución de sistemas ecuaciones lineales
Métodos directos para solución de sistemas ecuaciones lineales
 
Presentacion Sql 2
Presentacion Sql 2Presentacion Sql 2
Presentacion Sql 2
 
Estructura repetitiva do while
Estructura repetitiva do whileEstructura repetitiva do while
Estructura repetitiva do while
 

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

origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioELIASAURELIOCHAVEZCA1
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
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
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
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
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxMaritzaRetamozoVera
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptxFelicitasAsuncionDia
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxlupitavic
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfFrancisco158360
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxKarlaMassielMartinez
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 

Último (20)

origen y desarrollo del ensayo literario
origen y desarrollo del ensayo literarioorigen y desarrollo del ensayo literario
origen y desarrollo del ensayo literario
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
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
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
Sesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docxSesión de aprendizaje Planifica Textos argumentativo.docx
Sesión de aprendizaje Planifica Textos argumentativo.docx
 
Registro Auxiliar - Primaria 2024 (1).pptx
Registro Auxiliar - Primaria  2024 (1).pptxRegistro Auxiliar - Primaria  2024 (1).pptx
Registro Auxiliar - Primaria 2024 (1).pptx
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
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
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 4to Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 4to Grado Educacion Primaria 2024 Ccesa007.pdf
 
PLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docxPLAN DE REFUERZO ESCOLAR primaria (1).docx
PLAN DE REFUERZO ESCOLAR primaria (1).docx
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdfCurso = Metodos Tecnicas y Modelos de Enseñanza.pdf
Curso = Metodos Tecnicas y Modelos de Enseñanza.pdf
 
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptxTECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
TECNOLOGÍA FARMACEUTICA OPERACIONES UNITARIAS.pptx
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.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