Google Custom Search Api desde Android

1
11542

Google Custom Search Api desde Android

0. Índice de contenidos.


1. Introducción

Debido a un correo que recibí hace poco, tuve que buscar información sobre como podía realizar búsquedas en internet desde un disposivo movil y poder tratar esos resultados sin tener que abrir un navegador.

Entonces pensé, que buscador importante puede haber que devuelva buenos resultados y además provea una api para poder utilizar sus servicios. El primer buscador que viene a la mente es como no Google, que además proporciona apis para la gran mayoría de sus servicios. Buscando información dí con esta página , que es justo lo que estaba buscando ;). El servicio nos permite realizar 100 consultas gratuitas al día, si tenemos previsto realizar más consultas tendremos que utilizar otro servicio o pasar por caja.


2. Requisitos previos

Como requisito indispensable es disponer de una cuenta de gmail.
Además necesitamos una clave que nos identificará a la hora de realizar las consultas. Para conseguir la clave nos dirigimos a https://code.google.com/apis/console/?api=customsearch&pli=1#welcome , y aceptamos la licencia. A continuación nos saldrá una ventana como la que aparece a continuación

Si en el botón aparece «Activate», lo pulsamos para activar, y si aparece «Deactivate» quiere decir que ya tenemos el servicio habilitado.

Para conocer nuestra clave, nos dirigimos a «API Access» en el menú de la derecha, y en el apartado «Access key» aparecerá nuestra clave.

Además vamos a crear un motor de búsqueda personalizado. Nos dirigimos a http://www.google.com/cse/ y pinchamos en «Crear motor de búsqueda».

Rellenamos la página como aparece a continuación. Lo único que tenéis que cambiar es las páginas en donde se van a realizar las búsquedas.

A continuación pulsamos en siguiente. Nos mostrará una pantalla en donde podemos utilizar un cuadro de texto para probar la configuración de nuestro buscador personalizado.
Pulsamos en siguiente y ya tendremos creado nuestro motor de búsqueda personalizado.

Ahora que tenemos el motor de búsqueda creado, necesitamos anotar un valor que más adelante vamos a necesitar. Entonces nos dirigimos a http://www.google.com/cse/manage/all?hl=es y clickeamos en el «Panel de control» del motor de búsqueda que acabamos de crear. Nos fijamos en el apartado que pone «ID único del motor de búsqueda» y anotamos el valor que aparece. En mi caso es 010306700704176754880:j_bbeym3x0g.



3. Uso de la API

Para utilizar esté servicio, tenemos que realizar una petición a una URL que deberemos componer nosotros. En el ejemplo que nos proporciona la documentación podemos ver

https://www.googleapis.com/customsearch/v1?key=INSERT-YOUR-KEY&cx=017576662512468239146:omuauf_lfve&q=lectures.

Si desglosamos la url tenemos:

  • https://www.googleapis.com/customsearch/v1
  • key=INSERT-YOUR-KEY
  • cx=017576662512468239146:omuauf_lfve
  • q=lectures

Como podemos ver, tenemos pasamos tres parámetros mediente la url. También es posible pasar un parámetro «callback» para especificarle una función de callback (http://code.google.com/intl/es-ES/apis/customsearch/v1/getting_started.html#JSONP).

El parámetro «key», hace referencia a la clave que hemos creado anteriormente.

El parámetro «cx», hace referencia al contexto con el que se realizarán las búsquedas. Es el identificador único que hemos obtenido al crear nuestro motor de búsqueda personalizado.

El parámetro «q», hace referencia a la búsqueda que vamos a realizar. Por ejemplo «hibernate», «spring», y en caso del ejemplo es «lectures».

Si abrimos un navegador e introducimos en la barra de direcciones la url formada con nuestros campos, obtendremos una cadena json con los resultados obtenidos.



4. Creando el cliente.

Ahora vamos a crear nuestro cliente para mostrar los resultados. Abrimos eclipse y creamos un nuevo proyecto de Android. Nuestra aplicación de Android va a constar de un activity que estará compuesto de un TextView en donde se pondrá lo que se quiere buscar, un botón para realizar la búsqueda y un ListView para mostrar los resultados que nos devuelva la búsqueda.

Las clases principales que vamos a necesitar para realizar nuestra aplicación son:

  • HttpRequest: Clase que va a realizar la conexión con el servicio de google.

  • UrlFactory: Clase que nos va crear una url con nuestros parámetros para realizar la petición

  • ResultDeserializer: Clase que nos va a transformar el objeto jSon devuelto por el servicio en una lista de items con los resultados de la búsqueda
  • Item: Clase que contendrá la información de cada resultado devuelto por el servicio

Modificamos la vista que nos crea Eclipse y añadimos un TextView, un ImageButton y un Listview para poder mostrar los resultados de la búsqueda.

y por último creamos nuestra clase principal.

Aquí tenéis unas capturas para ver como funciona el invento 🙂




Aquí tenéis el código fuente del proyecto y el programa por si alguien quiere probarlo 😉

Proyecto para Eclipse

Apk con el programa.

1 Comentario

Dejar respuesta

Please enter your comment!
Please enter your name here