 Usando google como buscador…  Decargamos pilotogoogleapi1.0 y creamos un archivo index.php  Vamos a necesitar la librería nusoap que nos permite invocar.

Slides:



Advertisements
Presentaciones similares
Curso de PHP Tema 5: Sesiones.
Advertisements

Internet y tecnologías web
OPCIONES PERSONALES EN EL CATÁLOGO EN LÍNEA www. navarra
integridad referencial
ADELA TORRES JONATHAN BEJARANO
Modemmujer, Red Feminista de Comunicación Electrónica.
Qué es una Comunidad? Comunidades… … compartir conocimientos, noticias y documentación entre agrupaciones de usuarios en torno a un tema determinado. Pestaña.
BASE DE DATOS Primeros pasos
PORTAL WEB Manual de Usuario Perfil Autorizador
CGI I La mayor parte de los elementos HTML de que disponemos permite al visitante visualizar los contenidos de un sitio, pero no interactuar con él. Dicho.
Discovery Service (EDS)
Aprendizaje de Microsoft® Access® 2010
Tema: Técnicas Básicas Excel (III) Trucos, opciones y personalización de Excel Índice: 1 Vínculos absolutos y relativos, conectando datos de Excel con.
Biblioteca.unizar.es Produce Base de datos Econlit Administra.
GESTOR DE REFERENCIAS EndNote Web
¿QUE ES YOUTUBE? Es un sitio Web que permite a los usuarios compartir y ver videos. Aloja una gran variedad de clips de películas, programas de televisión,
"java del lado del servidor" Servlet y JSP Java Server Pages.
Buscar bibliografía en
OBJETO REQUEST. El objeto Request Por qué el objeto request Funcionamiento Colecciones: – Transferencia de variables por URL –Transferencia de variables.
Características generales de un servicio Web.
WWW (World Wide Web) Pedro José López Javier Díaz
El portal de recursos electrónicos de la UAM
Taller 5: Trabajo con Plantillas y uso de tecnología Ajax.
Como usar el Catálogo Bello Guía práctica Acceso al catálogo  Se puede acceder al catálogo desde cualquier parte del mundo por Internet.  Es posible.
Universidad de La Coruña Escuela Universitaria Politécnica Control de Procesos por Computador Diego Cabaleiro 24 de Noviembre 2009.
y programa de Microsoft Access
INFOMATICA EMPRESARIAL Principales Contenidos: Clase 26 de Mayo de 2012 Alejandra Meliza Caro Profesor.
SIA Sistema Integrado de Admisión
Ingeniero Anyelo Quintero
Curso de Creación aplicaciones dinámicas web con PHP y MySQL Continuamos.
Formación para Coordinadores de Formación UFI de Zuera.
SITIO, BITÁCORA Y AULA VIRTUAL Trabajo sobre el espacio de Aula Virtual. Trabajo sobre aula virtual de prueba y elaboración de aula virtual de asignatura.
3. Espacios de trabajo. Manual de formación 2 3. Espacios de trabajo 3.1 Introducción … ……pág.45.
Creación y manejo de un Blog en Wordpress BLOGS. Nosotros hemos elegido wordpress ya que nos parece que es uno de los mas intuitivos y sencillos de manejar.
Publicación de bases de datos Access en la web
Autora: Francisca Montañez Muñoz
Manual de usuario de wordpress. Introducción Este manual de introducción a wordpress ha sido elaborado con la intención de ofrecer la información necesaria.
Presione F5. Cómo publicar videos en YouTube YouTube es un servicio de distribución de videos en internet, tiene una plataforma muy fácil de utilizar.
Ihr Logo PHP Parte 4 “manejo de formularios”. Your Logo Formularios  El proceso para el manejo de FORMULARIOS html requiere generalmente dos páginas,
Aplicaciones Web de Servidor
Cuentas de usuarios y grupos en windows 2008 server
“condición que necesita el usuario para resolver un problema o conseguir un objetivo determinado”. Los requisitos de un sistema son los aspectos que el.
Introducción al Lenguaje. ¿ Qué es PHP ? O Hypertext Pre-processoes (PHP) es un lenguaje de "código abierto" interpretado, de alto nivel, embebido en.
Nombre: Josselyn Peña Curso: 1° “D”. Este manual de introducción a Wordpress ha sido elaborado con la intención de ofrecer la información necesaria para.
1 Clase 3 Registro de resultados Tecnología de la Comunicación I.
PÁGINA DE INICIO DE GOOGLE (igoogle) Idoia Gil Insausti.
File Transfer Protocol.
MANUAL DE USUARIO DE WORDPRESS. 1. CREAR EL BLOG  En la página Wordpress.com elegimos comenzar un blog y vamos siguiendo los pasos de registro: Rellenamos.
DIRECCIONES URL Las siglas URL corresponden a las palabras inglesas Universal Resource Locator, que en español viene a significar algo así como "Localizador.
GESTOR DE REFERENCIAS EndNote En Línea Biblioteca Universitaria.
Búsqueda de Información en Internet
Tema 11 Bases de Datos y el Lenguaje SQL
Una Red Sociales un sitio en internet donde compartir información, mensajes, ideas, fotos, etc., con amigos, conocidos y desconocidos. Para acceder a.
Práctica Profesional PHP.
1
EduCat Prototipos. Introducción En las próximas páginas se muestra un bosquejo de lo que será la interfaz gráfica de nuestro programa, EduCat, para los.
GUIA para la adscripción de centros o grupos de trabajo promotores y registro de experiencias en la Red de Experiencias de Educación para la Salud en la.
TUTORIAL SLIDESHARE ANA ROMANO. Slideshare es una de las cientos de herramientas web 2.0 que encontramos en la Red. Es a las presentaciones lo que Youtube.
INTERFAZ DE ACCESS  Access es un sistema gestor de bases de datos relacionales (SGBD). Una base de datos suele definirse como un conjunto de información.
FORMULARIOS Para introducir datos en las tablas de una forma simple, visual y cómoda. Los formularios tambien se usan para IMPRIMIR datos BASE DE DATOS.
Catálogo de Bibliotecas Públicas de Castilla y León
¿Cómo programar un Botón para agregar registros a una base de datos?
Servicios Web Conjunto de aplicaciones o de tecnologías con capacidad para interoperar en la Web. Estas aplicaciones o tecnologías intercambian datos entre.
Plataformas e- learning Moodle. Instalacion  Descargamos Moodle de su página oficial  Una vez hemos descargado el archivo, lo descomprimimos y copiamos.
WORD PRESS NOMBRE: BANNY CUENCA. Crear el blog En la página Wordpress.com elegimos comenzar un blog y vamos siguiendo los pasos de registro: Rellenamos.
MANUAL DE USO WORDPRESS. 1. CREAR EL BLOG En la página Wordpress.com elegimos comenzar un blog y vamos siguiendo los pasos de registro: Rellenamos el.
Autentificación y Seguridad en Aplicaciones Web.  Delegadas en el cliente y el servidor ◦ Basados en estándares de Internet  Autentificación Básica.
Introducción a phpmyadmin índice 1. Introducción 6. Insertar registros 5. Crear usuario para php 8. Modificar registros 2. Base de datos MySQL 3. Crear.
Antonio de Jesús González Arce Matricula DHTIC.
Introducción a programación web Martin Esses. En las presentaciones anteriores, vimos como enviar datos a un controlador usando POST y como generar formularios.
Transcripción de la presentación:

 Usando google como buscador…  Decargamos pilotogoogleapi1.0 y creamos un archivo index.php  Vamos a necesitar la librería nusoap que nos permite invocar servicios web de forma remota. require_once("nusoap.php");  La versión que nos hemos descargado está ya configurada para salir de la red uniovi a través de su proxy.

 Para acceder a los servicios de google necesitamos identificarnos como desarrolladores mediante una API key.  La API key nos permite identificar el servicio contra google, y por otro lado, permite a google aplicar las restricciones establecidas para las búsquedas gratuitas. $key = "iwnUXUtHj3bteg5FWfBJDwui3SPeB+iy";

 Para lanzar la consulta, debemos completar una estructura de datos que representa la consulta que queremos realizar.  La query tiene los siguientes campos. CampoSignificado KeyClave API del desarrollador QConsulta que deseamos realizar StartPunto a partir del cual mostrar los resultados (paginación) maxResultsNúmero máximo de resultados a recuperar FilterIndica se los resultados deben ser filtrados RestrictRestringir la búsqueda al lenguaje lr safeSearchBúsqueda safe para menores LrLenguaje al que restringir la búsqueda IeDEPRECATED ow

 Ejemplo de parámetros para una query: $parameters = array( "key" => $key, "q" => “Daniel F. Lanvin”, "start" => 0, “maxResults” => 10, “filter” => true, “restrict” => “”, “safeSearch” => false, “lr” => “lang_es”, “ie” => “”, “oe" => "" );

 Los pasos siempre que se accede a un servicio web remoto son similares: ◦ Obtenemos una referencia al stub de cliente para el servicio remoto: $soapclient = new soapclient(" ◦ Invocamos el servicio y almacenamos los resultados. $result = $soapclient->call("doGoogleSearch", $parameters, "urn:GoogleSearch");

 El servicio de búsqueda de google devuelve un array con la siguiente estructura: Campo (sólo los principales) Significado searchTimeTiempo de búsqueda empleado estimatedTotalResult sCount Número de resultados obtenidos resultElementsArray con los elementos encontrados searchCommentsMensajes para el usuario final searchTipsSugerencias para el usuario final

Cada elemento recuperado viene en forma de array con los siguientes campos (entre otros): Campo (sólo los principales) Significado directoryTitleCategoría de directorio del elemento encontrado SnippetResultado de la búsqueda en su contexto. TitleTítulo del resultado de la búsqueda en formato HTML URLUrl de la página encontrada. Etc…

 Así, para recuperar los 10 primeros snippets… foreach ( $result["resultElements"] as $elemento ) { echo "{$elemento['snippet']} "; }

 Bajamos y descomprimimos pilotogoogleapi1.0.  En la carpeta pilotogoogleapi1.0 implementar index.php de tal forma que aparezca un formulario html apuntando a sí misma en el que poder introducir la búsqueda a realizar.  Debajo del formulario, mostrar los resultados de tal forma que aparezca ◦ La consulta recibida ◦ El tiempo de búsqueda empleado ◦ El número de elementos encontrados ◦ Las sugerencias de google ◦ Los comentarios de google ◦ Y Por cada elemento encontrado…  Un enlace a la página encontrada cuyo texto sea el campo title del resultado.  Debajo, el snippet del resultado.

La página resultante tiene que tener la siguiente apariencia. (Resuelto en pilotogoogleapi2.0)

 Zend framework es un proyecto open-source en PHP5 que permite la utilización de sus componentes de forma independiente del framework en sí.  Aporta: ◦ Implementación MVC ◦ Catálogo de componentes ◦ Renderizadores

 Modelo View Controller ◦ Patrón de diseño arquitectónico que considera la aplicación como un compendio de tres elementos:  Modelo: Suma de la lógica de negocio y persistencia  Vistas: Cada una de las pantallas de la aplicación con las que interactúa el usuario  Controlador: Elemento que recibe todas las peticiones del usuario y que decide  Como interactuar con el modelo  Las vista en la que debe delegar una vez terminadas las operaciones con el modelo.

 Zend tiene varias librerías de clases orientadas a la realización de operaciones comunes en aplicaciones Mashup  Es posible utilizar las bibliotecas desde aplicaciones PHP5 sin ceñirse al modelo arquitectónico que sigue el framework.  Google developer recomienda el uso de la biblioteca Zend Gdata para el acceso a la API de google desde PHP.

 Las Google Data APIs son un interfaz programático para facilitar el acceso a algunos de los servicios de Google.  El protocolo de datos de Google está basado en el Atom Publishing Protocol, y permite a las aplicaciones cliente ◦ Recuperar información a partir de consultas ◦ Enviar información ◦ Actualizar datos ◦ Borrar datos.  Combina ATOM con protocolo HTTP  Zend_Gdata es el componente PHP 5 que permite realizar estas operaciones de acceso a Google.

 La biblioteca permite acceder a las APIs de: ◦ Google Calendar ◦ Google Spreadsheets (GoogleDocs) ◦ Google Document List (Google Docs) ◦ Google Provisioning (Gestion de perfiles y listas de correos) ◦ Google Base ◦ YouTube ◦ Picasa Web Albums ◦ Google Blogger ◦ Google CodeSearch ◦ Google Notebook

 Falta por cubrir: ◦ Google search ◦ Google Maps ◦ Google Translation ◦ Google Gmail.

 Vamos a acceder a la API de google Calendar usando Zend Gdata.  En primer lugar, con nuestro usuario de google, creamos dos calendarios e insertamos varios eventos en ambos para las próximas semanas, y también para las anteriores.  Creamos un nuevo archivo calendar.php en la carpeta de trabajo y lo editamos.

 Google calendar requiere que el usuario esté autentificado en google antes de permitirle recuperar o modificar información  Google permite tres tipos de autentificación en sus aplicaciones: ◦ Delegada en google: Forzamos la redirección a la página de google donde se nos solicita usuario y contraseña, facilitando la URL de nuestra app (luego debe ser pública) para que Google, una vez autentificado, nos devuelva el flujo de navegación.

◦ Mediante la cookie mágica: Un usuario puede entrar en google y copiar la url que le asigna una cookie mágica. Ésta le identifica como usuario registrado y logueado en la plataforma ◦ Mediante usuario/contraseña sobre ssl.

 Vamos a comenzar autentificando al usuario en google.  En primer lugar, debemos importar las siguientes clases que usaremos en el ejemplo: 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');

 Ya podemos proceder a intentar loguear al usuario.  En primer lugar, obtenemos una referencia al servicio del calendar. $service = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;  Una vez tengamos la referencia intentamos hacer el login para el servicio en concreto que queremos utilizar try{ $client = Zend_Gdata_ClientLogin::getHttpClient( $user,$pass,$service); echo "El cliente $user ha sido autentificado con éxito "; } catch ( exception $e ) { echo "El usuario o la contraseña no son válidos "; }

 Un usuario puede tener varios calendarios.  Accederemos a los mismos a través del objeto que representa su cliente HTTP $gdataCal = new Zend_Gdata_Calendar($client); $calFeed = $gdataCal->getCalendarListFeed(); echo ' '. $calFeed->title->text. ' ‘; echo ' ‘; foreach ($calFeed as $calendar) { echo ' '. $calendar->title->text. ' '; } echo ' ‘; (Resuelto en piloto 3.0)

 Completar la aplicación para que: ◦ Index.php contenga un segundo formulario que nos lleve a calendar.php enviando usuario y contraseña en la url ◦ En la página se muestren los calendarios del usuario. ◦ Para no tener que pedirle de nuevo usuario y contraseña, almacenamos ambos datos en la sesión... session_start(); //Guardamos el objeto $client en sesión $_SESSION["usuario"]=$user $_SESSION["password"]=$pass;... (Resuelto en piloto 4.0)

 Vamos a ver como recuperar eventos de los calendarios de un usuario  Partiendo del objeto Gdata Calendar, creamos una query para confeccionar la consulta. $query = $gdataCal->newEventQuery();  La query debe contener cierta información mínima para poder realizar la consulta. Vamos a especificar que: ◦ Queremos consultar todos los calendaros (public/private) del usuario. $query->setVisibility('private'); ◦ Sólo necesitamos recuperar la información básica de cada evento $query->setProjection('basic'); ◦ Queremos los resultados ordenados por orden de comienzo en el tiempo: $query->setOrderby ('starttime');

 Para invocar la búsqueda, utilizamos el método getCalendarEventFeed $feed = $gdataCal->getCalendarEventFeed($query);  Nos retorna una estructura de array con los atributos title y totalResults.  Cada elemento del array será un evento echo " {$feed->title}Eventos "; echo "Encontrados {$feed->totalResults} eventos en el calendario "; foreach ($feed as $event) { echo " {$event->title} "; echo "Resumen: "; echo "{$event->summary} \n"; }

 Las queries permiten más parámetros de los que hemos incluido en la primera. ParámetroSignificado setUserSi queremos restringir la búsqueda a los calendarios de un usuario para los que estemos autorizados. Default indica el propio usuario. setVisibilityPrivate/public setProjectionBasic/full/composite setOrderbyOrdenados por parámetro setFutureeventsLa búsqueda se restringe a eventos futuros setStartMinTimestamp de comienzo de búsqueda setStartMaxTimestamp de final de búsqueda setQueryConsulta. Se hace un match con la cadena contra el texto del evento.

 Añadir en calendar.php un formulario para que se realice una búsqueda de eventos “al menos” por cadena de texto (campo query- >query).  El formulario apuntará hacia detalle.php que: ◦ Realizará la búsqueda ◦ Mostrará los resultados ◦ Mostrará un enlace volver para retornar a calendar.php (resuelto en piloto 5.0)

 Para añadir eventos al calendario hay que: ◦ Crear el evento a partir de la referencia al servicio ◦ Completar los datos del evento ◦ Insertar el evento en nuestro calendario por medio del servicio.  La creación del evento la hacemos mediante el método newEventEntry() $event= $gdataCal->newEventEntry();

 Una vez creado el evento, tenemos que compleatar sus datos. Los atributos del objeto son a su vez objetos que deben ser creados mediante el servicio.  El atributo título: $event->title = $gdataCal->newTitle("Mi evento generado automáticamente con GData API");  El atributo where: $event->where = array($gdataCal-> newWhere("Valdes Salas, Oviedo, Spain"));  El atributo content: $event->content= $gdataCal->newContent( "Aquí meteremos los comentarios sobre el evento.");

 El atributo when es más complejo. Los timestamp siguen el formato RFC 3339 $startDate = " "; $startTime = "14:00"; $endDate = " "; $endTime = "16:00"; $tzOffset = "+01"; $when = $gdataCal->newWhen(); $when->startTime = "{$startDate}T{$startTime}:00.000{$tzOffset}:00"; $when->endTime = "{$endDate}T{$endTime}:00.000{$tzOffset}:00"; $event->when = array($when);

 Finalmente, añadimos el evento al calendario: $newEvent = $gdataCal->insertEvent($event);

 Añadir un formulario en calendar.php para la creación de eventos, de forma que: ◦ Permita definir  Título  Localización  Comentarios  Fecha inicio  Hola Inicio  Fecha fin  Hora fin ◦ El formuario invocará nuevoevento.php que realizará la inserción, mostrará un mensaje de ok y un enlace a calendar.php. ◦ (Resuelto en piloto 6.0)