Gravatar es un servicio muy utilizado en aplicaciones web que nos ayuda de forma fácil obtener información del usuario sin tener que estarla pidiendo continuamente simplemente usando el email que usa para nuestra aplicación.
Hola a todos, en esta entrada escribiré algo corto y simple. Lo que haremos hoy es consumir la JSON API de Gravatar para que partiendo del User Name poder sacar información del usuario. Si no sabes que es Gravatar, no sé que haces aquí 😛 (Es broma, lee un poco aquí). Es muy útil que las aplicaciones Web que regularmente uso usen Gravatar, con tan solo mi Email ya sacan mi foto de perfil y si es necesario mi biografía (todo depende de cuanto le digas a Gravatar).
El código lo subí a este fiddle. Trabajos de puro Javascript seguro los estaré subiendo a mi cuenta de Fiddle para que si lo usan, estén al pendiente.
HTML
Primero tendremos que agregar las librerías que vamos a usar, vamos a usar las mismas que el post pasado y tendremos la siguiente base:
Y dentro de body agregaremos nuestra vista de MVVM:
Lo que hay que explicar aquí son los bindings, el div#container tiene un binding que se casa con su estilo in-line y la propiedad css background-color. Esto porque Gravatar me puede dar el background color que el usuario tiene personalizado. Los demas bindings son como ya lo hemos visto antes, vinculos con propiedades de nuestro View Model. Es importante hablar del span que tiene el binding «text: getGravatarData», aquí es un truquito para ejecutar una función de mi View Model cada cuando la propiedad gravatarName cambie en el input. En realidad este no mostrará nada. La cosa aquí es que cualquier binding que se ponga en el HTML se van a evaluar nuevamente cada vez que una propiedad cambie.
Javascript
Agregamos dentro del load function de jQuery que ya agregamos el siguiente código javascript:
getGravatarData consume la api de Gravatar. El URL de la api de gravatar es http://en.gravatar.com/{userName}.json, pueden usar un REST client para probarlo y ver los datos que manda (o simplemente ponerlo en el navegador funciona). So, le concatenamos el user name al url para obtener la información del usuario que queremos, así de fácil.
La api nos regresa un hash MD5 del email del usuario, y lo necesitamos para obtener la imagen de perfil del tamaño que queramos. Por eso usamos el URL http://www.gravatar.com/avatar/{has-md5}?s={size}.
Y el resultado es como lo hemos visto en el fiddle que he subido.
Saludos!
28.632996
-106.069100