Últimamente siempre me pasa lo mismo. Estoy terminando de programar algo y sale a la luz una nueva forma de hacerlo. Esta vez incluso ya lo había terminado y funcionando.

A través de Google Blogoscoped, uno de los mejores blogs sobre Google en la web, me entero de que Google finalmente descontinúa su SOAP Search API.

Es cierto que ya desde finales de 2006 no entregan nuevas API keys y habían lanzado en reemplazo el AJAX Search API, pero como ya había jugado bastante con el código del anterior y conservaba toda la info, seguí desarrollando de ese modo. A partir de septiembre ya no servirá esta vieja API, así que tuve que recurrir a la versión AJAX para no quedarme pronto con un script obsoleto.

Por suerte, la parte en que consultaba a Google era la menor del script, así que la implementación fue bastante más sencilla de lo que imaginé.

Primero pedí una API, que sirve para un sitio determinado y hasta incluso podemos hacerla válida a solamente un directorio. Esta información se guarda en nuestra cuenta de Google y podemos pedir una o más hasta donde entendí para cada web en que la necesitemos.

Luego, fue el momento de leer la documentación y buscar el modo de acceder mediante php.

Agregué al código que muestran para php, la key registrada en la variable url ya que en otra página de esta guía de Google así lo recomiendan (aunque no figura en la página referenciada primero).

Unos cuantos intentos me llevó hacerlo funcionar, simplemente por el hecho de que el string de búsqueda necesitaba unos formatos extras con respecto a lo que usaba para el SOAP, lo que me llevaba a una hermosa página de Bad Request. Tuve dos inconvenientes:

– No buscaba más de 1 palabra. Hay que reemplazar los espacios por el signo “+”.

– No hacía búsquedas exactas. No me reconocía las comillas dobles, ya que yo las agregaba a las consultas luego de preparar el string para Google. La solución es reemplazar las comillas por %22 o hacerles un urlencode.

Finalmente, destacar que esta nueva API (nueva para mí pero ya está disponible hace tiempo) no tiene el límite de 1000 consultas diarias que tenía la anterior.