guía del desarrollador

30
Guía del desarrollador Nota: El Google Web API de búsqueda ha sido oficialmente obsoleto al 1 de noviembre de 2010. Se continuará trabajando de acuerdo con nuestra política de desprecio, pero el número de peticiones que usted puede hacer por día será limitado. Por lo tanto, le recomendamos que para pasar a la API de búsqueda personalizada nueva. Tabla de contenidos Audiencia Introducción El Hello World de Google Web Search API Uso de la API de Google cargador Compatibilidad del navegador API Actualizaciones Ejemplos Los fundamentos Modos SearchControl Buscador Objetos Buscador Opciones Mantener un resultado de búsqueda Configuración de Restricciones del sitio Callbacks búsqueda Control Formulario de búsqueda personalizada Branding avanzada Ejemplos Avanzados Descripción general de API Styling Resultados de la búsqueda Flash y otros entornos que no sean de Javascript Fragmentos de código Referencia de las clases Solución de problemas

Upload: gunar-ortiz

Post on 31-Jul-2015

69 views

Category:

Documents


2 download

DESCRIPTION

desarrollador

TRANSCRIPT

Page 1: Guía del desarrollador

Guía del desarrollador

Nota: El Google Web API de búsqueda ha sido oficialmente obsoleto al 1 de noviembre de 2010. Se continuará trabajando de acuerdo con nuestra política de desprecio, pero el número de peticiones que usted puede hacer por día será limitado. Por lo tanto, le recomendamos que para pasar a la API de búsqueda personalizada nueva.Tabla de contenidos

Audiencia

Introducción El Hello World de Google Web Search API Uso de la API de Google cargador Compatibilidad del navegador API Actualizaciones

Ejemplos Los fundamentos Modos SearchControl Buscador Objetos Buscador Opciones Mantener un resultado de búsqueda Configuración de Restricciones del sitio Callbacks búsqueda Control Formulario de búsqueda personalizada Branding avanzada Ejemplos Avanzados

Descripción general de API Styling Resultados de la búsqueda

Flash y otros entornos que no sean de Javascript Fragmentos de código

Referencia de las clases

Solución de problemas

Audiencia

Esta documentación está diseñado para las personas familiarizadas con la programación de Javascript y conceptos orientados a objetos de programación. Hay muchos tutoriales de JavaScript disponibles en la WebIntroducciónEl "Hello, World" de Google Web Search API

Page 2: Guía del desarrollador

La forma más fácil de comenzar a aprender acerca de esta API es ver un ejemplo sencillo. La siguiente página web muestra una colección de resultados de búsqueda en línea para un "GTI VW". Los resultados de búsqueda incluyen Local, Web, Videos, Blogs, noticias, información, imagen, de Patentes, y los resultados de la Búsqueda de libros.

<DOCTYPE html PUBLIC "- / / W3C / / DTD XHTML 1.0 Strict / / EN" "Http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title> Hola Mundo - Google Web Search ejemplo de la API </ title> <Script src = "https://www.google.com/jsapi" type = "text / javascript"> </ script> <script type="text/javascript"> language="Javascript" / / <! google.load ('search', '1 ');

OnLoad function () { / / Crear un control de búsqueda var SearchControl google.search.SearchControl = new ();

/ / Añadir en un conjunto de buscadores var = new LocalSearch google.search.LocalSearch (); searchControl.addSearcher (LocalSearch); searchControl.addSearcher (nuevo google.search.WebSearch ()); searchControl.addSearcher (nuevo google.search.VideoSearch ()); searchControl.addSearcher (nuevo google.search.BlogSearch ()); searchControl.addSearcher (nuevo google.search.NewsSearch ()); searchControl.addSearcher (nuevo google.search.ImageSearch ()); searchControl.addSearcher (nuevo google.search.BookSearch ()); searchControl.addSearcher (nuevo google.search.PatentSearch ());

/ / Establecer el punto central Búsqueda Local localSearch.setCenterPoint ("New York, NY");

/ / Indicar al buscador dibujarse a sí mismo y decirle dónde va a colocar searchControl.draw (document.getElementById ("SearchControl"));

/ / Ejecutar una búsqueda inital searchControl.execute ("VW GTI"); } google.setOnLoadCallback (OnLoad);

/ /]]>

Page 3: Guía del desarrollador

</ Script> </ Head> <body> <div id="searchcontrol"> Cargando </ div> </ Body></ Html>

Para utilizar la API de búsqueda Web dentro de su sitio web, usted tendrá que incluir la dirección del cargador de Google APIs (https://www.google.com/jsapi). Esta biblioteca le permite cargar varias API a través de google.load ('api', 'version'). Usted puede aprender más aquí. Siempre asegúrese de incluir esta biblioteca dentro de una etiqueta <script> antes de intentar utilizar la funcionalidad de búsqueda de control.

El objeto principal utilizado por el Google Web API de búsqueda es una instancia de SearchControl, que coordina una búsqueda a través de un conjunto de servicios de búsqueda, denotada como hijos de ese objeto.

Como se puede ver en el ejemplo anterior, los objetos secundarios de LocalSearch tipo, WebSearch, VideoSearch, Blogsearch, NewsSearch, ImageSearch, PatentSearch y BookSearch (experimental) se añaden al control de búsqueda usando el addSearcher () método, y estos objetos buscador determinar qué servicios de búsqueda en el control de búsqueda funciona de nuevo.

El control de búsqueda se despliega dentro de la página web a través de una llamada al método SearchControl draw (), este método también se une el control de búsqueda en su página (dentro de la DOM). De forma predeterminada, un control de búsqueda se basa en un "lineal" de diseño, también se puede indicar al control de dibujar en una "pestaña" de diseño. Estos modos de dibujo se verá más adelante.

Además de las opciones de diseño con fichas, el control de búsqueda le permite separar fácilmente el "buscador" en el conjunto de resultados de búsqueda. Un uso de esto es tener un formulario de búsqueda en la barra lateral de la página con los resultados apiladas en el centro de la página.

Un usuario inicia una búsqueda introduciendo términos de búsqueda en el campo de texto del control de búsqueda y pulsando la tecla ENTER o haciendo clic en el botón de búsqueda a la derecha del campo de entrada. El control de búsqueda se iniciará automáticamente una búsqueda en paralelo a través de los solicitados servicios de Google. También puede iniciar una búsqueda mediante programación llamando a la búsqueda de control método execute (), pasando un argumento de los términos de búsqueda.Uso de la API de Google cargador

El Google Web API de búsqueda ahora se integra completamente con el cargador de Google API. El Google cargador de API especifica un esquema de espacio de nombres comunes, para que sea más fácil de usar la API de Google diferente juntos. Tenga en cuenta que el esquema

Page 4: Guía del desarrollador

de espacio de nombres antigua continuará con el apoyo, por lo que las aplicaciones existentes no tienen que ser actualizado.

Uso de la API de Google cargador es relativamente simple. Cambio de la aplicación para utilizar el cargador incluye los siguientes pasos:

En lugar de cargar la API de búsqueda Web desde http://www.google.com/uds, cargue el cargador común de https://www.google.com/jsapi.

<script type="text/javascript" src="https://www.google.com/jsapi"> </ script>

Cargar la API de búsqueda Web mediante el método google.load como se muestra a continuación. El método google.load toma un argumento para la API específica y el número de versión a cargar:

<script type="text/javascript"> google.load ("search", "1"); </ Script>

Utilice el google.search. * Espacio de nombres para todas las clases, métodos y propiedades que se utilizan actualmente en la búsqueda web de Google API, sustituyendo el prefijo G con este espacio de nombres. Por ejemplo, el objeto GSearchControl se asigna a google.search.SearchControl cuando se utiliza el cargador de API Google:

<html> <head> <Script src = "https://www.google.com/jsapi" type = "text / javascript"> </ script> <script type="text/javascript"> google.load ("search", "1");

/ / Llamar a esta función cuando la página se ha cargado function initialize () { var SearchControl google.search.SearchControl = new (); searchControl.addSearcher (nuevo google.search.WebSearch ()); searchControl.addSearcher (nuevo google.search.NewsSearch ()); searchControl.draw (document.getElementById ("SearchControl")); } google.setOnLoadCallback (initialize); </ Script>

</ Head> <body> <div id="searchcontrol"> </ div> </ Body>

Page 5: Guía del desarrollador

</ Html>

Utilice google.setOnLoadCallback para registrar la función de controlador específico que se llamará una vez que el documento se carga en vez de GSearch.setOnLoadCallback. En la Red Búsqueda API tiene algunas opciones de configuración opcionales cargador. La carga dinámica - consulte la documentación de carga dinámica. No cargue CSS - si usted no desea cargar el CSS por defecto a continuación, establezca "nocss" a true.

google.load ("search", "1", {"nocss": true});

No cargue espacio de nombres de edad - si usted no desea que el espacio de nombres de edad (GSearch, GSearchControl, etc ..) a continuación, establezca "nooldnames" a true.

google.load ("search", "1", {"nooldnames": true});

Nota: La mayoría de las muestras siguen utilizando el viejo espacio de nombres para que no funcione con este ajuste. Esto es sólo para aplicaciones personalizadas que no quieren que su espacio de nombres a estar atestado de Google Web Search API. Específicos del idioma de interfaz de usuario - si desea especificar el idioma de los componentes de interfaz de usuario (SearchControl, branding, etc ..) en lugar de tener que auto-detecta a continuación, "lenguaje" para el código de idioma específico, tales como: en, es, zh -CN, pt-PT, y etc ..

google.load ("search", "1", {"language": "es"});

La documentación completa para el uso de la API de Google cargador está disponible en la documentación del cargador. Compatibilidad del navegador

El Google Web Search API actualmente soporta Firefox 1.5 +, Internet Explorer 6, Safari, Opera 9 +, y Chrome. API Actualizaciones

El segundo argumento en el google.load ('search', '1 .0 '); contiene el nivel esperado de esta versión de la API (en este caso la versión "1.0"). Cuando hacemos una importante actualización de la API, vamos a "hasta" el número de versión y publicar un aviso en el grupo de discusión Buscar en la Web API. Tome nota de los cambios de código requeridos cuando esto ocurre, y actualizar sus URL a la nueva versión cuando cumplen.

Después de una nueva versión del programa, Google compatible con las versiones antiguas y nuevas al mismo tiempo durante un período de tiempo, prevé que sea de varios meses. Después de este período expira, solicitudes de los clientes que utilizan la API de edad ya no será aceptado, por lo que cambiar el código tan pronto como usted note una nueva versión.

Page 6: Guía del desarrollador

El equipo de Google Web Search API también se actualizará periódicamente a la API con recientes correcciones de errores y mejoras de rendimiento sin necesidad de una actualización de versión. En su mayor parte, estas soluciones deben seguir siendo transparente para el usuario, pero sin darse cuenta puede acabar con algunos clientes de API. Por favor, utilice el Buscar en la Web API grupo de debate para informar tales cuestiones. Ejemplos

Nota: cada uno de los ejemplos siguientes se muestra sólo relevante código Javascript, no un archivo HTML completo. Puede enchufar el código en el archivo HTML esqueleto se mostró anteriormente, o puede descargar el archivo HTML completo para cada ejemplo haciendo clic en el enlace después del ejemplo. Los fundamentos

El siguiente ejemplo (idéntico al código Javascript en el código anterior muestra Mundial de Hola) crea un control de búsqueda, lo configura para buscar a través de la búsqueda local, búsqueda Web, Video Search, Blog Search, Búsqueda de Noticias, Búsqueda de imágenes, Búsqueda y Búsqueda de libros Patant (experimental), y luego pone el control en la página.

/ / Crear un control de búsqueda var = new SearchControl google.search.SearchControl (null);

/ / Agregar en un conjunto completo de buscadores searchControl.addSearcher (nuevo google.search.LocalSearch ()); searchControl.addSearcher (nuevo google.search.WebSearch ()); searchControl.addSearcher (nuevo google.search.VideoSearch ()); searchControl.addSearcher (nuevo google.search.BlogSearch ()); searchControl.addSearcher (nuevo google.search.NewsSearch ()); searchControl.addSearcher (nuevo google.search.ImageSearch ()); searchControl.addSearcher (nuevo google.search.BookSearch ()); searchControl.addSearcher (nuevo google.search.PatentSearch ());

/ / Indicar al buscador dibujarse a sí mismo y decirle dónde va a colocar / / Tenga en cuenta que debe existir un elemento dentro del documento HTML con id "search_control" searchControl.draw (document.getElementById ("search_control"));

SearcherControl Draw Modos

El control de búsqueda puede ser programado para mostrar en modos de dibujo diferentes. El objeto google.search.DrawOptions controla este comportamiento a través de su método setDrawMode (). Este método tiene los siguientes argumentos: google.search.SearchControl.DRAW_MODE_LINEAR google.search.SearchControl.DRAW_MODE_TABBED Para establecer realmente el modo de dibujo de un objeto de control de búsqueda, pase un

Page 7: Guía del desarrollador

objeto google.search.DrawOptions como parámetro para el método de control de búsqueda de draw ().

/ / Crear un objeto drawOptions drawOptions var = google.search.DrawOptions nuevo ();

/ / Indicar al buscador que se dibuje en modo lineal drawOptions.setDrawMode (google.search.SearchControl.DRAW_MODE_LINEAR); searchControl.draw (elemento, drawOptions);

/ / Indicar al buscador que se dibuje en el modo de pestañas drawOptions.setDrawMode (google.search.SearchControl.DRAW_MODE_TABBED); searchControl.draw (elemento, drawOptions);

Otra opción común disponible a través de este método es la posibilidad de desacoplar el "buscador" desde el conjunto de resultados de búsqueda. El objeto google.search.DrawOptions controla este comportamiento a través de su método setSearchFormRoot (). Este método acepta un elemento DOM que actuará como contenedor para el buscador.

/ / Crear un objeto drawOptions drawOptions var = google.search.DrawOptions nuevo (); drawOptions.setSearchFormRoot (document.getElementById ("searchForm"));

searchControl.draw (elemento, drawOptions);

Buscador Objetos

El método addSearcher () del objeto de control de búsqueda determina qué servicios de búsqueda en el control de búsqueda opera. Este método toma dos argumentos, uno que especifica el objeto de servicio, y un segundo argumento especificando opciones para el servicio. Los objetos siguientes buscador (servicios) están soportadas actualmente: google.search.LocalSearch google.search.WebSearch google.search.VideoSearch google.search.BlogSearch google.search.NewsSearch google.search.ImageSearch google.search.BookSearch (experimental) google.search.PatentSearch Dado que el Google Web API de búsqueda es un trabajo en progreso, la lista de servicios soportados evolucionará con el tiempo.

google.search.SearcherOptions

Page 8: Guía del desarrollador

Al añadir buscadores individuales para el control de búsqueda, un segundo parámetro opcional, el objeto google.search.SearcherOptions, controla el modo por defecto de cada servicio expansión, lo que afecta los resultados de la búsqueda se muestran en lugar de que el servicio en la página web. El modo de expansión puede ser uno de los siguientes:

google.search.SearchControl.EXPAND_MODE_OPEN Los resultados se muestran en forma más completa posible dentro del objeto. google.search.SearchControl.EXPAND_MODE_CLOSED Los resultados se oculta a la vista, a menos que se abrió a través del uso de un elemento de interfaz de usuario (por ejemplo, una flecha). google.search.SearchControl.EXPAND_MODE_PARTIAL Los resultados se muestran como un subconjunto de la modalidad "abierta" de expansión.

/ / Crear un objeto buscador opciones / / Configurar para el modo de expansión abierto / / Cargar un buscador con las siguientes opciones Opciones var = google.search.SearcherOptions nuevo (); options.setExpandMode (google.search.SearchControl.EXPAND_MODE_OPEN); searchControl.addSearcher (nuevo google.search.WebSearch (), opciones);

Control Mode Expansion

El siguiente ejemplo demuestra el uso de un control de búsqueda en la que cada buscador está funcionando en un modo de expansión diferente. Tenga en cuenta que si el buscador se está elaborando en el modo de pestañas, modo de expansión se ignora. En ese caso, el buscador siempre funciona en modo abierto.

/ / Búsqueda local, parcial options = google.search.SearcherOptions nuevo (); options.setExpandMode (google.search.SearchControl.EXPAND_MODE_PARTIAL); searchControl.addSearcher (nuevo google.search.LocalSearch (), opciones);

/ / Búsqueda de la web, abierto options = google.search.SearcherOptions nuevo (); options.setExpandMode (google.search.SearchControl.EXPAND_MODE_OPEN); searchControl.addSearcher (nuevo google.search.WebSearch (), opciones);

Controlar Buscador Ubicación resultados

En algunas aplicaciones, es deseable para proyectar los resultados de búsqueda para un servicio dado en una ubicación arbitraria en la página web. Este modo de operación es compatible con el método setRoot () de un objeto al servicio de buscador correspondiente.

/ / Búsqueda en la web, la raíz abierta, alternas Opciones var = google.search.SearcherOptions nuevo ();

Page 9: Guía del desarrollador

options.setExpandMode (google.search.SearchControl.EXPAND_MODE_OPEN); options.setRoot (document.getElementById ("somewhere_else")); searchControl.addSearcher (nuevo google.search.WebSearch (), opciones);

Mantener un resultado de búsqueda

Las muestras hasta ahora se han centrado en integrar los resultados de búsqueda en su página sólo para visualización, sin la capacidad de almacenar los resultados en otra aplicación. Si bien este es un uso perfectamente apropiada de la Búsqueda web de Google API, no demuestra su verdadero potencial. El Google Web Search API está diseñado para permitir a los usuarios distribuir los resultados de búsqueda a los demás, sobre todo a través de aplicaciones de creación de contenidos como blogs, foros, etc

El objeto google.search.SearchControl proporciona esta funcionalidad a través de su método setOnKeepCallback (). Con este método, las aplicaciones especificar un objeto y un método que se llama cuando un usuario indica el deseo de salvar a un resultado de búsqueda, haga clic en la opción "Copiar" debajo del resultado.

Este enlace se proporciona únicamente si las aplicaciones han llamado setOnKeepCallback () método. Cuando un usuario hace clic en el vínculo, la devolución de llamada registrada recibe una instancia GResult que representa el resultado de la búsqueda. Este objeto de resultados de búsqueda contiene un número de propiedades buscador específicos, así como una propiedad uniforme html que contiene un elemento HTML que representa el resultado de la búsqueda. La forma más sencilla de gestionar la devolución de llamada es clonar el nodo html y adjuntarlo a un nodo DOM de la aplicación.

/ / Establecer una fortaleza de devolución de llamada searchControl.setOnKeepCallback (esto, MyKeepHandler);

MyKeepHandler función (resultado) { / / Clonar el nodo de resultado html var node = result.html.cloneNode (true);

/ / Adjuntar savedResults var = document.getElementById ("saved_results"); savedResults.appendChild (nodo); }

Configuración de Restricciones del sitio

En algunas situaciones, es posible que desee restringir una búsqueda en Internet, búsqueda de noticias, o busque blog a un sitio específico o blog. Al aplicar restricciones de este tipo, lo más habitual es también desea establecer su propia etiqueta personalizada en la sección asociada de resultados de búsqueda, y es posible que desee estilo esta sección de resultados de manera diferente.

Page 10: Guía del desarrollador

Todas estas capacidades están soportados mediante el uso de una combinación de los métodos expuestos por las opciones de buscador. El ejemplo siguiente muestra el uso de. SetUserDefinedLabel (),. SetUserDefinedClassSuffix (), y. SetSiteRestriction (). El ejemplo crea un control de búsqueda en una instancia de google.search.WebSearch es un sitio restringido para devolver sólo los resultados de amazon.com, utiliza "Amazon.com" como etiqueta de sección de búsqueda, y se aplica una cierta cantidad de costumbre estilo css para esta sección (título en negrita, el botón naranja portero, etc.) Una sección similar que muestra las restricciones de sitio en un google.search.BlogSearch y en google.search.NewsSearch también está demostrada.

<style type="text/css"> / * Checkbox para personalizar-SiteSearch sección y * Establecer título de la sección y conservar la etiqueta en negrita * / . GSC-resultsRoot-SiteSearch. SGC-keeper { background-image: url ('/ / css / orange_check.gif....'); font-weight: bold; } .. GSC-resultsRoot SiteSearch-SGC-title {font-weight: bold;} ...

/ Search / sitio web restringido con etiqueta personalizada / / Y el sufijo de clase var = new SiteSearch google.search.WebSearch (); siteSearch.setUserDefinedLabel ("Amazon.com"); siteSearch.setUserDefinedClassSuffix ("sitesearch"); siteSearch.setSiteRestriction ("amazon.com"); searchControl.addSearcher (SiteSearch);

/ Search / sitio web restringido usando un motor de búsqueda personalizado SiteSearch = new google.search.WebSearch (); siteSearch.setUserDefinedLabel ("Opiniones"); siteSearch.setSiteRestriction ("000455696194071821846: Comentarios"); searchControl.addSearcher (SiteSearch);

Callbacks búsqueda Control

En algunas situaciones, usted desea utilizar el control de búsqueda, ya que proporciona toda la interfaz de usuario que usted necesita, pero usted tiene una necesidad de ver y procesar parcialmente los resultados de búsqueda a medida que llegan. En lugar de recurrir a la capa google.search.Search donde usted tiene esta capacidad, pero son los responsables de la interfaz de usuario, el control de búsqueda expone un par de devoluciones de llamada. Usted puede utilizar estas para solicitar una notificación antes de una búsqueda se ejecuta y finaliza

Page 11: Guía del desarrollador

después de una búsqueda. Tenga en cuenta, no se puede contar con un determinado ejecutar dando como resultado una conclusión. La finalización no puede ocurrir, por lo que no te código en un callejón sin salida. Un ejemplo típico de esto ocurre cuando es posible que desee graficar resultados de búsqueda locales en un mapa más cercano.

El fragmento de código siguiente muestra el uso de esta capacidad.

searchControl.setSearchCompleteCallback (esto, App.prototype.OnSearchComplete); searchControl.setSearchStartingCallback (esta App.prototype.OnSearchStarting,);

App.prototype.OnSearchComplete = function (sc, buscador) {

/ / Si tenemos resultados de búsqueda locales, los puso en el mapa if (searcher.results searcher.results.length &&> 0) { for (var i = 0; i <searcher.results.length, i + +) { var resultado = searcher.results ["i];

/ / Si se trata de un resultado de búsqueda local ya continuación ... si (== result.GsearchResultClass GlocalSearch.RESULT_CLASS) { ...

App.prototype.OnSearchStarting = function (sc, buscador, query) { alert ("La consulta es:" query +); ...

El siguiente ejemplo es una demostración más completa de estas API. Muestra cómo utilizar estas dos devoluciones de llamada para procesar los resultados de búsqueda locales y colocarlos en un mapa adjunto. Formulario de búsqueda personalizada

Cuando se utiliza google.search.SearchControl, la aplicación puede utilizar el integrado "buscador", que proporciona un elemento de entrada de texto, un botón de búsqueda, y un botón de borrado, así como "Powered by Google" branding.

Alternativamente, si su aplicación es la creación de un buscador de crudo a través de google.search.Search, puede crear un formulario de búsqueda independiente utilizando google.search.SearchForm (). Este objeto proporciona la apariencia de la interfaz de usuario de control de búsqueda, pero se empaqueta como un objeto autónomo que permite un control mayor del que tanto el comportamiento como la colocación.

El fragmento de código siguiente muestra cómo utilizar google.search.SearchForm.

/ / Crear un formulario de búsqueda sin un botón claro

Page 12: Guía del desarrollador

/ / Bind formulario de envío a mi código personalizado var container = document.getElementById ("searchFormContainer"); this.searchForm = new google.search.SearchForm (false, contenedor); this.searchForm.setOnSubmitCallback (esto, App.prototype.newSearch);

/ / Llamada en forma presentar App.prototype.newSearch = function (forma) { si (form.input.value) { this.searchControl.execute (form.input.value); } return false; }

Branding avanzada

Cuando se utiliza el google.search.SearchControl o google.search.SearchForm el, sus usuarios están naturalmente expuestos a "powered by Google" branding. Ellos son capaces de asociar los servicios de búsqueda que expone su sitio con Google. Cuando su aplicación no utiliza ninguna de estas formas, es importante comunicar sigue siendo la marca de Google para los usuarios. El método google.search.Search.getBranding () está diseñado para ayudarle con esto. Este método acepta un elemento HTML DOM y adjunta el "powered by Google" branding en ese elemento. Como alternativa, un "powered by Google" elemento HTML DOM puede ser devuelto a usted para que pueda conectarlo directamente.

El fragmento de código siguiente muestra el uso de esta capacidad.

/ / Adjuntar "powered by Google" branding google.search.Search.getBranding (document.getElementById ("branding")); ... <div Cargando id="branding"> ... </ div>

Descripción general de API

El Google Web API de búsqueda se compone de varias clases de objetos: google.search.SearchControl - Esta clase proporciona la interfaz de usuario y la coordinación a través de una serie de objetos buscador, donde cada objeto está diseñado buscador para realizar búsquedas y devolver una clase específica de los resultados (Buscar en la Web, búsqueda local, etc.) google.search.Search - Esta clase base es la clase de la cual todos los "buscadores" heredar. Define la interfaz que todos los servicios de buscador debe implementar. GResult - Esta clase encapsula base de los resultados de búsqueda producidos por los objetos buscador. google.search.SearcherOptions - Esta clase configura el comportamiento de los objetos

Page 13: Guía del desarrollador

buscador cuando se añade a un control de búsqueda.

Este es el patrón esperado de uso para estas clases:

/ / Crear un objeto de buscador var sc = new google.search.SearchControl ();

/ / Añadir uno o más investigadores, especificando las opciones según sea necesario Opciones var = google.search.SearcherOptions nuevo (); options.setExpandMode (google.search.SearchControl.EXPAND_MODE_OPEN); sc.addSearcher (nuevo google.search.WebSearch (), opciones); ...

/ / Activar el control de búsqueda llamando es todo. Método draw () sc.draw (document.getElementById ("myDiv"));

Una vez realizados todos estos pasos básicos, el control de búsqueda está activo. Buscadores adicionales no se pueden añadir y opciones de buscador no puede ser modificada una vez un control de búsqueda se dibuja. Si necesita cambiar el comportamiento de su control de búsqueda, debe construir y activar un control nueva búsqueda.

Para obtener más información, consulte la referencia de API Web Search clase. Styling Resultados de la búsqueda

Cada resultado de búsqueda incluye por defecto. Propiedad html que se construye con un estilo CSS en mente. Como resultado, cada pieza de información semántica está encerrado en el formato HTML con un conjunto apropiado de marcadores de clase. Esto le permite utilizar este código HTML en conjunto con sus propias reglas CSS personalizadas que el estilo del HTML para satisfacer sus necesidades.

Como se verá en las siguientes secciones, cada resultado de la búsqueda se incluye en un elemento div marcado con una clase de resultados de búsqueda genérica de gs-resultado, así como un ejemplo tipo de resultado clase específica, gs-webResult, gs-localResult, etc . Esta estructura le permite definir fácilmente genéricos reglas CSS que se aplican a todos los resultados, así como el tipo reglas específicas.

Además de esta estructura, cuando el resultado está gestionado por la google.search.SearchControl, cada resultado se incluye en un elemento div marcado con una clase de resultado de búsqueda genérica de control de GSC-resultado, así como un ejemplo tipo de resultado clase específica, GSC-webResult, GSC-localResult, etc Cada sección de resultados se ve envuelto en un elemento div marcados con un control genérico de resultados de búsqueda de clase GSC-resultados, así como un ejemplo tipo de resultado clase específica, GSC-webResult, GSC- localResult, etc

El resultado neto de esta estructura es el esqueleto siguiente:

Page 14: Guía del desarrollador

<- Una colección de resultados de la búsqueda web en el control de búsqueda -> <div class="gsc-results gsc-webResult">

<- A consecuencia web solo en el control de búsqueda -> <div class="gsc-result gsc-webResult">

<- A consecuencia web único, la estructura completa se define a continuación -> <div class="gs-result gs-webResult"> </ div> </ Div> ... </ Div>

<- Patrón similar a blog local, etc -> class="gsc-results <div gsc-localResult"> </ div> class="gsc-results <div gsc-blogResult"> </ div>

Para obtener información detallada sobre la estructura de cada resultado de búsqueda de CSS, visite el siguiente apartado. Flash y otros entornos que no sean de Javascript

Para los desarrolladores de Flash, y los desarrolladores que tienen una necesidad de acceder a la API de búsqueda Web desde otros entornos no-Javascript, la API expone una sencilla interfaz RESTful. En todos los casos, el método admitido es GET y el formato de respuesta es un resultado JSON codificado establecido con los códigos de estado integrados. Las aplicaciones que utilizan esta interfaz debe cumplir con todos los términos existentes del servicio. Un área de prestar especial atención a se refiere a sí mismo correctamente en la identificación de sus peticiones. Las aplicaciones siempre deben incluir un encabezado HTTP referer válidos y precisos en sus peticiones.

Los desarrolladores también se les anima a hacer uso del parámetro userip para suministrar la dirección IP del usuario final en nombre de la cual usted está haciendo la solicitud del API. Si lo hace, le ayudará a distinguir este legítimo del lado del servidor de tránsito del tráfico que no procede de un usuario final.

La forma más fácil de comenzar a aprender acerca de esta interfaz es para probarlo ... Usando la línea de comando curl o wget herramienta, ejecute el comando siguiente:

curl-e http://www.my-ajax-site.com \ 'Https://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=Paris% 20Hilton'

Este comando realiza una búsqueda en la Web (/ ajax / services / search / web), de Paris Hilton (q =% 20Hilton París). La respuesta tiene un tipo de contenido de text / javascript; charset = UTF-8. Se puede ver en la respuesta a continuación que el responseData es idéntica a

Page 15: Guía del desarrollador

los resultados y las propiedades del cursor descritos en la documentación del objeto Base de búsqueda.

{"ResponseData": { "Resultados": [ { "GsearchResultClass": "GwebSearch", "UnescapedUrl": "http://en.wikipedia.org/wiki/Paris_Hilton", "Url": "http://en.wikipedia.org/wiki/Paris_Hilton" "VisibleUrl": "en.wikipedia.org" "CacheUrl": "http://www.google.com/search?q \ u003dcache: TwrPfhd22hYJ: en.wikipedia.org" "Title": "\ u003cb \ u003eParis Hilton \ u003c / b \ u003e - Wikipedia, la enciclopedia libre", "TitleNoFormatting": "Paris Hilton - Wikipedia, la enciclopedia libre", "Contenido": "\ [1 \] En 2006, ella lanzó su álbum debut ..." }, { "GsearchResultClass": "GwebSearch", "UnescapedUrl": "http://www.imdb.com/name/nm0385296/", "Url": "http://www.imdb.com/name/nm0385296/" "VisibleUrl": "www.imdb.com", "CacheUrl": "http://www.google.com/search?q \ u003dcache: 1i34KkqnsooJ: www.imdb.com" "Title": "\ u003cb \ u003eParis Hilton \ u003c / b \ u003e", "TitleNoFormatting": "Paris Hilton", "Contenido": "sin asistencia:. Zoolander Socialite \ u003cb \ u003eParis Hilton \ u003c / b \ u003e ..." }, ... ], "Cursor": { "Páginas": [ {"Start": "0", "label": 1}, {"Start": "4", "label": 2}, {"Start": "8", "label": 3}, {"Start": "12", "label": 4} ], "EstimatedResultCount": "59600000", "CurrentPageIndex": 0, "MoreResultsUrl": "http://www.google.com/search?oe \ u003dutf8 \ u0026ie \ u003dutf8 ..." } } , "ResponseDetails": null, "responseStatus": 200}

Page 16: Guía del desarrollador

Además de este formato de respuesta, el protocolo también soporta un clásico JSON-P devolución de llamada de estilo que se activa mediante la especificación de un argumento de devolución de llamada. Cuando este argumento está presente, el objeto json se entrega como un argumento para la devolución de llamada especificado.

curl-e http://www.my-ajax-site.com \

Este comando realiza una búsqueda en la Web, que es idéntica a la búsqueda anterior, pero se ha modificado para pasar de devolución de llamada. Con este argumento en su lugar, en vez de un objeto JSON que se devuelve, una llamada Javascript se devuelve en la respuesta y el objeto JSON se pasa a través del parámetro resultados.

processResults ({"responseData": { "Resultados": [ { "GsearchResultClass": "GwebSearch", "UnescapedUrl": "http://en.wikipedia.org/wiki/Paris_Hilton", "Url": "http://en.wikipedia.org/wiki/Paris_Hilton" "VisibleUrl": "en.wikipedia.org" "CacheUrl": "http://www.google.com/search?q \ u003dcache: TwrPfhd22hYJ: en.wikipedia.org" "Title": "\ u003cb \ u003eParis Hilton \ u003c / b \ u003e - Wikipedia, la enciclopedia libre", "TitleNoFormatting": "Paris Hilton - Wikipedia, la enciclopedia libre", "Contenido": "\ [1 \] En 2006, ella lanzó su álbum debut ..." }, { "GsearchResultClass": "GwebSearch", "UnescapedUrl": "http://www.imdb.com/name/nm0385296/", "Url": "http://www.imdb.com/name/nm0385296/" "VisibleUrl": "www.imdb.com", "CacheUrl": "http://www.google.com/search?q \ u003dcache: 1i34KkqnsooJ: www.imdb.com" "Title": "\ u003cb \ u003eParis Hilton \ u003c / b \ u003e", "TitleNoFormatting": "Paris Hilton", "Contenido": "sin asistencia:. Zoolander Socialite \ u003cb \ u003eParis Hilton \ u003c / b \ u003e ..." }, ... ], "Cursor": { "Páginas": [ {"Start": "0", "label": 1},

Page 17: Guía del desarrollador

{"Start": "4", "label": 2}, {"Start": "8", "label": 3}, {"Start": "12", "label": 4} ], "EstimatedResultCount": "59600000", "CurrentPageIndex": 0, "MoreResultsUrl": "http://www.google.com/search?oe \ u003dutf8 \ u0026ie \ u003dutf8 ..." } } , "ResponseDetails": null, "responseStatus": 200})

Y, por último, el protocolo es compatible con una devolución de llamada y el argumento de contexto. Cuando estos argumentos url se especifica, la respuesta se codifica como una llamada directa Javascript con una firma de: devolución de llamada (el contexto, los resultados, el estado, detalles, no utilizados). Tenga en cuenta la ligera diferencia en el siguiente comando y respuesta.

curl-e http://www.my-ajax-site.com \

Este comando realiza una búsqueda en la Web, que es idéntica a la búsqueda anterior, pero se ha modificado para pasar tanto de devolución de llamada y el contexto. Con estos argumentos en su lugar, en vez de un objeto JSON que se devuelve, una llamada Javascript se devuelve en la respuesta y el objeto JSON se pasa a través del parámetro resultados.

foo ('bar', { "Resultados": [ { "GsearchResultClass": "GwebSearch", "UnescapedUrl": "http://en.wikipedia.org/wiki/Paris_Hilton", "Url": "http://en.wikipedia.org/wiki/Paris_Hilton" "VisibleUrl": "en.wikipedia.org" "CacheUrl": "http://www.google.com/search?q \ u003dcache: TwrPfhd22hYJ: en.wikipedia.org" "Title": "\ u003cb \ u003eParis Hilton \ u003c / b \ u003e - Wikipedia, la enciclopedia libre", "TitleNoFormatting": "Paris Hilton - Wikipedia, la enciclopedia libre", "Contenido": "En 2006, lanzó su álbum debut \ u003cb \ u003eParis \ u003c / b \ u003e ..." }, { "GsearchResultClass": "GwebSearch", "UnescapedUrl": "http://www.imdb.com/name/nm0385296/", "Url": "http://www.imdb.com/name/nm0385296/" "VisibleUrl": "www.imdb.com",

Page 18: Guía del desarrollador

"CacheUrl": "http://www.google.com/search?q \ u003dcache: 1i34KkqnsooJ: www.imdb.com" "Title": "\ u003cb \ u003eParis Hilton \ u003c / b \ u003e", "TitleNoFormatting": "Paris Hilton", "Contenido": "sin asistencia:. Zoolander Socialite \ u003cb \ u003eParis Hilton \ u003c / b \ u003e fue ..." }, ... ], "Cursor": { "Páginas": [ {"Start": "0", "label": 1}, {"Start": "4", "label": 2}, {"Start": "8", "label": 3}, {"Start": "12", "label": 4} ], "EstimatedResultCount": "59600000", "CurrentPageIndex": 0, "MoreResultsUrl": "http://www.google.com/search?oe \ u003dutf8 ..." } } , 200, null)

Fragmentos de código

En la siguiente sección se muestran fragmentos de código que muestran acceso a la API de Flash, Java y PHP. Si usted tiene cualquier problema de procesamiento de la respuesta JSON, no deje de visitar el sitio JSON.org y prestar mucha atención a la segunda mitad de la página en varias bibliotecas JSON se hace referencia. Ver este métodos de mapeo de tabla para URLS base para obtener detalles sobre cómo los diversos servicios de Google API descritas en los apartados anteriores se ponen a disposición a través de la API REST. Flash Access

El fragmento de código siguiente se muestra cómo realizar una solicitud a la API de búsqueda Web de Flash. Nótese el uso de la biblioteca JSON ActionScript 3.0 Core (AS3).

servicio var: = HTTPService HTTPService nuevo (); service.url = 'https://ajax.googleapis.com/ajax/services/search/web'; service.request.v = '1 .0 '; service.request.q = 'Paris Hilton'; 'text' = service.resultFormat; service.addEventListener (ResultEvent.RESULT, onServerResponse); service.send ();

onServerResponse private function (event: ResultEvent): void {

Page 19: Guía del desarrollador

try { var json: Object = JSON.decode (event.result as String); / / Ahora pasar un buen rato con los resultados ... } Catch (ignorado: Error) { } }

Java Access

El fragmento de código siguiente se muestra cómo realizar una solicitud a la API de búsqueda Web Java. Tenga en cuenta el uso de la biblioteca JSON de http://www.json.org/java/

/ / La solicitud también incluye el parámetro userip que proporciona el extremo Dirección IP / / usuario. Si lo hace, le ayudará a distinguir esta legítima / / Del lado del servidor de tráfico del tráfico que no procede de un usuario final. Url URL = URL nueva ( "Https://ajax.googleapis.com/ajax/services/search/web?v=1.0 &" + "Q =% 20Hilton París y userip = USERS-IP-ADDRESS"); Conexión URLConnection url.openConnection = (); connection.addRequestProperty ("Referer", / * Introduce la URL de tu sitio aquí / *);

Línea String; StringBuilder builder = new StringBuilder (); BufferedReader reader = new BufferedReader (nuevo InputStreamReader (connection.getInputStream ())); while ((line = reader.readLine ())! = null) { builder.append (línea); }

JSONObject json = new JSONObject (builder.toString ()); / / Ahora pasar un buen rato con los resultados ...

Php acceso

El fragmento de código siguiente se muestra cómo realizar una solicitud a la API de búsqueda Web de php. Tenga en cuenta que este ejemplo se supone PHP 5.2. Para instalaciones más antiguas de PHP, consulte este comentario.

/ / La solicitud también incluye el parámetro userip que proporciona el extremo Dirección IP / / usuario. Si lo hace, le ayudará a distinguir esta legítima / / Del lado del servidor de tráfico del tráfico que no procede de un usuario final. $ Url = "https://ajax.googleapis.com/ajax/services/search/web?v=1.0 &" . "Q =% 20Hilton París y userip = USERS-IP-ADDRESS";

Page 20: Guía del desarrollador

/ / SendRequest / / Note cómo referer se ajusta manualmente $ Ch = curl_init (); curl_setopt ($ ch, CURLOPT_URL, $ url); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ ch, CURLOPT_REFERER, / * Introduce la URL de tu sitio aquí / *); $ Cuerpo = curl_exec ($ ch); curl_close ($ ch);

/ / Ahora, procesar la cadena JSON $ Json = json_decode ($ cuerpo); / / Ahora pasar un buen rato con los resultados ...

Python acceso

El fragmento de código siguiente se muestra cómo realizar una solicitud a la API de búsqueda Web de Python. Tenga en cuenta que este ejemplo se supone Python 2.4 o superior y es posible que tenga que descargar e instalar simplejson.

importación urllib2 importación simplejson

# La solicitud también incluye el parámetro userip que proporciona el extremo # Dirección IP del usuario. Si lo hace, le ayudará a distinguir esta legítima # Del lado del servidor de tráfico del tráfico que no procede de un usuario final. url = ('https://ajax.googleapis.com/ajax/services/search/web' '? V = q = 1,0 y París% 20Hilton y userip = USERS-IP-ADDRESS ")

request = urllib2.Request ( url, None, {'referer': / * Introduce la URL de tu sitio aquí * /}) respuesta = urllib2.urlopen (bajo petición)

# Procesar la cadena JSON. results = simplejson.load (respuesta) # Ahora pasar un buen rato con los resultados ...

Perl Acceso

El fragmento de código siguiente se muestra cómo realizar una solicitud a la API de búsqueda Web de Perl. Tenga en cuenta que esta muestra se basa en la LWP :: UserAgent módulos y JSON que se puede obtener de CPAN. También puede utilizar el módulo URI :: Escape.

#! / Usr / bin / perl # La solicitud también incluye el parámetro userip que proporciona el extremo

Page 21: Guía del desarrollador

# Dirección IP del usuario. Si lo hace, le ayudará a distinguir esta legítima # Del lado del servidor de tráfico del tráfico que no procede de un usuario final. my $ url = "https://ajax.googleapis.com/ajax/services/search/web?v=1.0 &" . "Q =% 20Hilton París y userip = USERS-IP-ADDRESS";

# Cargue los módulos # Por favor, tenga en cuenta que es necesario que dispongas LWP :: UserAgent y JSON instalado para utilizar este # Se puede llegar tanto desde CPAN. use LWP :: UserAgent; utilizar JSON;

# Inicializa el objeto UserAgent y enviar la solicitud. # Tenga en cuenta que referer se ajusta manualmente a una cadena URL. my $ ua = LWP :: UserAgent-> new (); $ Ua-> default_header ("HTTP_REFERER" => / * Introduce la URL de tu sitio aquí * /); mi $ cuerpo = $ ua-> get ($ url);

# Procesar la cadena json my $ json = desde_json ($ cuerpo-> decoded_content);

# Pasar un buen rato con los resultados my $ i = 0; foreach my $ resultado (@ {$ json-> {responseData} -> {resultado}}) { $ I + +; print $ i. ".". $ Result-> {} titleNoFormatting. "(". $ Result-> {url}. ") \ N"; #, Etc ... } if ($ i) { print "Lo siento, pero no hubo resultados \ n."; }

Otras lecturas

Para obtener la documentación completa sobre esta interfaz, consulte el manual de referencia de la clase. Solución de problemas

Si tiene problemas con el código: Busque errores tipográficos. Recuerde que JavaScript es un lenguaje de mayúsculas y minúsculas. Use un depurador JavaScript. En Firefox, puede utilizar la consola de Firebug JavaScript o el. En Internet Explorer, puede utilizar el depurador de secuencias de comandos de Microsoft. Busca en el Web API grupo de discusión. Si no puede encontrar un puesto que responde a

Page 22: Guía del desarrollador

su pregunta, envíe su pregunta al grupo junto con un enlace a una página web que muestra el problema.

Windows Enterprise

1)Abrir cmd como administrador2)tipear: slmgr -skms 114.95.204.2273)tipear: slmgr.vbs -ato4)reiniciar

Windows Pro

1)Abrir cmd como administrador2)tipear: slmgr /ipk KN9W4-W3C7Q-M7Q93-V2QY6-J2KT33)tipear: slmgr -skms 114.95.204.2274)tipear: slmgr.vbs -ato5)reiniciar