Loading...
Recursos Web
Recursos PHP
Asterisk - VoIP
Mundo LINUX
Google Inside
Joomla CMS
Moddle LMS
Juegos Logicos
Últimas noticias
Artículos relacionados
Inicio arrow Google Inside arrow Google Base Data API arrow Accediendo con PHP a la API
Ingreso de Usuarios
Accediendo con PHP a la API E-Mail
Escrito por Valquiria   
domingo, 21 de diciembre de 2008

Vamos a contar un poco como haciendo uso del lenguaje PHP podemos conectarnos a la Google Base Data API

Requerimientos Basicos

  • En primera instancia Google nos ofrece un ejemplo de programa que se puede descargar del siguiente link click aqui, es un ejemplo de aplicacion basadas en Recetas
  • Deberemos descargar tambien la libreria cliente para la API creada por Zend ( los creadores de php )
  • Para poder ejecutar la libreria en un servidor local o hosting propio deberemos contar con la version de PHP 5.1.4 o posterior

Una vez instalado todo deberemos modificar la KEY que viene de ejemplo y se encuentra en la linea 14, si todavia no tienes tu propia Key puedes consultar el siguiente link, click aqui,

 Si es la primera vez que se utiliza esta aplicacion, hay que loguearse en la cuenta de Google y autorizar la utilizacion de la API.




 

Que hace la aplicacion de ejemplo

La aplicacion lo que permite es que los usuarios envien nuevas recetas y manipulen las ya existentes, digase editar, eliminar y hacer busquedas sobre las ya existentes. Para ello utiliza tanto el metodo GET como el POSt para mantener dos informacion : la codificacion de autenticacion del usuario registrado AuthSub token y la Requested action (insert, update, delete, o batch).. 

En primera instancia se debe obtener la AuthSub token, que es un codigo de autorizacion del usuario, generado con un login. para ello la aplicacion posee una pagina de introduccion.

Construir la pagina de introduccion

Utilizando el frameword de Zend deberemos para lograr esto llamar al siguiente metodo estatico
Zend_Gdata_AuthSub::getAuthSubTokenUri pasandole los siguientes parametros:

  • $next_url: la url donde se redigira la aplicacion una vez que el usuario se logueo y dio su aurotizacion
  • $itemFeedURL: que indica los limites de alcance de la aplicacion sobre los feeds especificos que consultara.
  • boolean : indicando si la pagina es segura o no , 0 si no es una aplicacion registrada en Google
  • boolean : que indica si los datos obtenidos seran utilizados para multiples sessiones.
function showIntroPage() {
  global $itemsFeedURL;
 
  $next_url = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
  $redirect_url = Zend_Gdata_AuthSub::getAuthSubTokenUri($next_url, $itemsFeedURL, 0, 1);
 
  ...
}
Una vez que el usuario es redirigido a la aplicacion, habiendose logueado en  la  API AuthSoub de Google,  vuelve por GET  un parametro que contendra la clave utilizada para interactuar con la aplicacion.
En la aplicacion de ejemplo encontramos una funcion que utiliza otro de los metodos de framework para obtener dicha clave.
function exchangeToken($token) {
  return Zend_Gdata_AuthSub::getAuthSubSessionToken($token);
}

Insertar una nueva Receta desde la aplicacion

Dentro de la aplicacion podremos encontrar una funcion llamada createOrEditEntry que es la encargada de crear el XML con el formato correspondiente para poder enviar a la API y de esta manera ingresar una nueva receta desde la aplicacion a la Google Base Data.
Para esto la funcion en primere momento instancia un nuevo objeto basado en el framework
new Zend_Feed_EntryAtom() luego con el objeto instaciado, levantando los datos del formulario que completo el usuario sobre los datos de la nueva receta, por medio del POST construye el XML, el codigo de ejemplo seria el siguiente.

Instanciamos el objeto y llamamos a la funcion que genera el XML

function buildNewEntry() {
  return createOrEditEntry(new Zend_Feed_EntryAtom());
}

Datos formato al XML con los datos del formulario enviado por POST

function createOrEditEntry($entry) {
  $newEntry = $entry;
 
  $newEntry->category['scheme'] = 'http://base.google.com/categories/itemtypes';
  $newEntry->category['term'] = 'Recipes';
 
  $newEntry->title['type'] = 'text';
  $newEntry->title = $_POST['recipe_title'];
 
  $newEntry->{'g:cuisine'} = $_POST['cuisine'];
  $newEntry->{'g:item_type'} = 'Recipes';
  $newEntry->{'g:item_type'}['type'] = 'text';
 
  $newEntry->{'g:cooking_time'} = $_POST['time_val'] . ' ' .
                                  $_POST['time_units'];
  $newEntry->{'g:cooking_time'}['type'] = 'intUnit';
 
  $newEntry->{'g:main_ingredient'} = $_POST['main_ingredient'];
  $newEntry->{'g:main_ingredient'}['type'] = 'text';
 
  $newEntry->{'g:serving_count'} = $_POST['serves'];
  $newEntry->{'g:serving_count'}['type'] = 'number';
 
  $newEntry->content = $_POST['recipe_text'];
 
  return $newEntry;
}

Creando el codigo para enviar luego de editar un item

Para ello la aplicacion utiliza la misma funcion para generar el XML que se enviara al servidor, con la unica salvedad, que el objeto que se le enviara no sera uno recien instanciado, no un nuevo objeto, sino un objeto qure referencia a un item ya guardado y existente en Google

 

 

Fuente : http://code.google.com/apis/base/samples/php/php-sample-zend.html

Enjoy !!

» No Comments
There are no comments up to now.
» Post Comment
Email (will not be published)
Name
Title
Comment
 remaining characters
Captcha Image Regenerate code when it's unreadable
 
Siguiente >