Ejemplo02.cs
Este es un ejemplo de utilización de las APIs de Google en una aplicación local (con el Sistema Operativo Microsoft Windows). En este caso en concreto, trabajamos con C# (C Sharp) y Microsoft .net Framework SDK (http://msdn.microsoft.com/netframework/.
Pero antes necesitamos crear un proxy local que llame a los Servicios Web de Google. Este proxy será
una clase que la crearemos con 'wsdl.exe', una herramienta que viene incluida con el '.net SDK'.
En el mismo directorio en el que vayamos a trabajar (por facilitar las cosas) metemos el fichero
'GoogleSearch.wsdl'. Este es el fichero WSDL que describe los Servicios Web, y que se
descarga gratis desde http://www.google.com/apis/download.html.
En la consola del Sistema:
C:\directorio>wsdl /n:GoogleService GoogleSearch.wsdl
Se crea el fichero 'GoogleSearchService.cs'.
C:\directorio>csc /t:library GoogleSearchService.cs
Compilamos, y se crea la librería dinámica 'GoogleSearchService.dll'.
El código de este ejemplo número 2 lo tenéis disponible en 'ejemplo02-cs.txt',
y para probarlo debéis ejecutar desde la consola del Sistema:
C:\directorio>csc /r:GoogleSearchService.dll ejemplo02.cs
Compilamos, y se crea el ejecutable 'ejemplo02.exe', que lo podremos ejecutar con Microsoft Windows.
Este ejemplo llama a los Servicios Web de Google para hacer una petición de los 2 primeros resultados de la búsqueda del término "matrix reloaded".
Analizamos su código:
using GoogleService;
Debemos indicar que vamos a usar la clase que acabamos de crear (librería 'GoogleSearchService.dll').
peticion = "matrix reloaded";
En este caso, el término a buscar es "matrix reloaded", pero puede ser cualquier otro que queramos o, incluso uno que nos indique el usuario.
clave = "XXXXXXXXXXXX";
Aquí deberemos indicar nuestra clave. Puedes conseguir una gratis en
http://api.google.com/createkey. Recuerda que solamente puedes hacer 1000 peticiones por día con la misma clave.
resultados_inicio = 0;
numero_resultados = 2;
Le indicamos que empiece por el primer resultado (índice 0) y que nos muestre dos resultados. Como veremos ahora, trabajamos con un array, y éstos suelen tener el primer valor con índice 0.
GoogleSearchService servicio = new GoogleSearchService();
Creamos un nuevo objeto de la clase GoogleSearchService.
GoogleSearchResult resultado = servicio.doGoogleSearch(clave, peticion, resultados_inicio, numero_resultados, false, "", false, "", "", "" );
En este punto es donde llamamos al método principal del servicio: doGoogleSearch. A este método se le deben pasar 10 parámetros, en este orden:
:: Clave: Nos la proporciona Google y se puede conseguir gratis en
http://api.google.com/createkey.
:: Petición: Dentro de esta cadena, se cumplen las mismas normas que las búsquedas clásicas en Google. Es decir: 10 palabras como máximo; hay palabras que no son consideradas ("de", "of", "la", "the", ...); si la petición es "deportes -basket" nos buscará páginas que contegan la palabra "deportes" pero no la palabra "basket"; si la petición es "palabra site:midominio.com" solo buscará dentro de las páginas de "midominio.com", etc.
:: Inicio: Valor del primer resultado que queremos que nos muestre. Tener en cuenta que el primer resultado tiene índice cero.
:: Número de resultados: Este valor puede ser 10 como máximo.
:: Filtro: Se trata de un boleano (verdadero o falso). Si está activado, se muestran páginas filtradas en función de la experiencia de los usuarios de Google (no se muestran páginas con 'snippets' repetidos, o páginas de dentro del mismo host). Se recomienda ponerlo a "false".
:: Restricción: Puede tomar valores para restringir los resultados a un solo idioma ('lang_es' sería para solamente páginas en español, o 'lang_fr' solo en francés), a páginas web de un solo país ('countryAR' para Argentina o 'countryCL' para Chile), o páginas web de un solo tema ('linux' para temas de Linux, o 'unclesam' para temas relacionados con USA). Sería conveniente, para este parámetro, y para otras muchas cosas, echar un vistazo al fichero 'APIs_Reference.html' que se incluye dentro del 'kit' que os habéis descargado.
:: SafeSearch: Se trata de un boleano (verdadero o falso). Si está activado, muestra menos resultados que si estuviera desactivado ("false"), ya que no se muestran ciertas páginas que Google considera que son de adultos. Actúa de la misma manera que el SafeSearch de las búsquedas clásicas.
:: Restricción de idioma: Restringe la búsqueda de documentos para uno o varios idiomas.
:: ie: En principio, servía para indicar el juego de caracteres en el que se introducen los datos de entrada. Pero ahora este valor es ignorado, y siempre se usa el juego de caracteres UTF-8.
:: oe: En principio, servía para indicar el juego de caracteres en el que se muestran los datos de salida. Pero ahora este valor es ignorado, y siempre se usa el juego de caracteres UTF-8.
total = resultado.estimatedTotalResultsCount;
El objeto 'resultado' tiene la propiedad 'estimatedTotalResultsCount', que devuelve el número de resultados totales de la búsqueda. Este valor puede ser menor, igual o mayor que el valor de la variable 'numero_resultados'.
url = resultado.resultElements[i].URL;
titulo = resultado.resultElements[i].title;
snippet = resultado.resultElements[i].snippet;
En este caso trabajamos con el array resultado.resultElements. Dentro de las propiedades que tienen cada uno de los elementos de este array, en este ejemplo utilizamos 'URL' (la dirección con el enlace a la página web del resultado), 'title' (el título de esta página web), y 'snippet' (una pequeña muestra del texto de la página web donde, generalmente, se incluyen las palabras de búsqueda.
Volver a Google API (página principal)
Puedes copiar esta información (estamos por la divulgación del conocimiento), pero cita
las fuentes (google.dirson.com).