Qué puedo hacer con la Api de Datos de Picasa?
La Api de datos de Picasa te permite modificar, añadir o eliminar álbumes o fotos de Picasa utilizando el Google Data Protocol.
Google Data Protocol, es utilizado por muchas Apis de Google (Youtube, Reader, Calendar,Picasa etc ).
El esfuerzo que imprimas en aprender Google Data Protocol te permitirá utilizar los múltiples servicios que Google pone a tu disposición.
Cómo realizo consultas con la Api de Datos de Picasa?
Las consultas las realizaremos con requerimientos HTTP, dichos requerimientos devolverán la respuesta en formato XML o JSON según indiquemos. Para probar su funcionamiento puedes usar cualquier navegador y enviar el siguiente requerimiento:
http://picasaweb.google.com/data/feed/api/user/tombrad2/album /LaLisera?prettyprint=true&alt=json“tombrad2” es el usuario de Picasa.
“LaLisera” es el álbum del usuario sobre el cual realizamos la consulta.
“prettyprint=true” nos muestra la consulta en un formato legible.
“alt=json” le decimos que la respuesta sea en formato JSON.
Algunos ejemplos de consultas a la Api de Datos de Picasa
No está de más hacerles recordar que las consultas que se muestran las pueden realizar en cualquier navegador de su preferencia.
Teniendo como referencia el documento de acá, aquí brindo algunas consultas de las múltiples que se pueden realizar.
http://picasaweb.google.com/data/feed/api/user/tombrad2/album/ParquePeru?prettyprint=true &alt=json&fields=title,subtitle,iconMuestra los campos del album "ParquePeru":”title”,”subtitle” y “icon”.
http://picasaweb.google.com/data/feed/api/user/ tombrad2?prettyprint=trueMuestra los datos de los álbumes del usuario “tombrad2”
http://picasaweb.google.com/data/feed/api/user/ tombrad2/album/ParquePeru?alt=json &fields=entry/media:group/media:description,entry/media:group/media:thumbnail&kind=photo&thumbsize=640Muestra las fotos asociadas al álbum “ParquePeru”, con los campos “description” y “thumbanail”. Para una mejor visualización en tu navegador, no te olvides agregar “prettyprint=true”.
Cómo utilizar la Api de Datos de Picasa con Google Web Toolkit?
Antes de responder la pregunta permítanme presentarles a la Clase JavaScriptObject. La Clase JavaScriptObject es normalmente declarado como el tipo de retorno en un método JSNI (los métodos JSNI pueden declarar tipo de dato retornado a diferencia de los métodos JavaScript nativos). Lamentablemente a la instancia de la Clase (Objeto) JavaScriptObject no podemos utilizarlo directamente en GWT. Para acceder a la data de un Objeto JavascriptObject tenemos dos alternativas. La primera alternativa es descrita en este artículo, la segunda alternativa es utilizar el Objeto JSONObject que recibe en su constructor al Objeto JavaScriptObject. En este post usaremos JSONObject.
GWT permite acceder a requerimientos cross domain mediante la clase JsonpRequestBuilder del siquiente modo:
public void onModuleLoad() { String url ="http://picasaweb.google.com/data/feed/api/user/tombrad2/album/ParquePeru?alt=json-in-script&fields=entry/media:group/media:description,entry/media:group/media:thumbnail&kind=photo&thumbsize=640"; JsonpRequestBuilder jsonp = new JsonpRequestBuilder(); jsonp.requestObject(url, new AsyncCallback<JavaScriptObject>(){ @Override public void onFailure(Throwable caught) { Window.alert(caught.getMessage()); } @Override public void onSuccess(JavaScriptObject object) { JSONObject obj=new JSONObject(object); Ejecutar(obj); }}); }//end functionMostrando el Ejemplo
En la línea 35 pueden observar cómo se declara la instancia de la clase JSONObject y como se le pasa en el constructor la instancia de la clase JavaScriptObject.
En la líneas 10 y 11 se puede observar la recuperación de los datos almacenados en la instancia de la clase JSONObject. No te dejes intimidar por la aparente complejidad de recuperación de datos!.
public class Apipicasa implements EntryPoint { VerticalPanel vp=new VerticalPanel(); public void Ejecutar(JSONObject obj){ int size=(int)obj.get("feed").isObject().get("entry").isArray().size(); for(int i=0;i<size;i++) { String url=obj.get("feed").isObject().get("entry").isArray().get(i).isObject().get("media$group").isObject().get("media$thumbnail").isArray().get(0).isObject().get("url").isString().stringValue(); String descripcion=obj.get("feed").isObject().get("entry").isArray().get(i).isObject().get("media$group").isObject().get("media$description").isObject().get("$t").isString().stringValue(); vp.add(new Image(url)); vp.add(new HTML(descripcion)); } RootPanel.get().add(vp); }//end function public void onModuleLoad() { String url ="http://picasaweb.google.com/data/feed/api/user/tombrad2/album/ParquePeru?alt=json-in-script&fields=entry/media:group/media:description,entry/media:group/media:thumbnail&kind=photo&thumbsize=640"; JsonpRequestBuilder jsonp = new JsonpRequestBuilder(); jsonp.requestObject(url, new AsyncCallback<JavaScriptObject>(){ @Override public void onFailure(Throwable caught) { Window.alert(caught.getMessage()); } @Override public void onSuccess(JavaScriptObject object) { JSONObject obj=new JSONObject(object); Ejecutar(obj); }}); }//end function }
No hay comentarios.:
Publicar un comentario