Para quienes no lo saben, Gravatar es un servicio que permite identificar con una imágen una dirección de correo electrónico, es decir, muestra una imágen dependiendo de un Email que haya sido registrado en su servicio. Se puede ver ejemplos de su uso en muchos blogs, foros y redes sociales en que un usuario (previamente registrado en Gravatar) escribe su correo y se muestra la imágen que registró. Hacer esto no es muy complicado y en este artículo explicaré como hacerlo de manera que puedan implementarlo en alguna aplicación que Uds. quisieran.

Obviamente y como siempre, al final pueden descargar el código y ejemplo completos hechos con ASP .Net y C#, aunque esta hecho con Visual Studio 2008, pueden perfectamente ejecutarlo en VS 2005 ya que el Framework es el 2.0, el resultado sería algo como en la siguiente imágen:

Implementando Gravatar en ASP .Net

Para implementar Gravatar en una aplicación solo es necesario colocar una imágen y definir como origen de la imágen la siguiente ruta:

http://www.gravatar.com/avatar.php?gravatar_id=<codigo MD5>[&size=<Tamaño>&default=<url de imágen por defecto>]

El parámetro gravatar_id es un hash MD5 del correo electrónico del cual queremos su avatar. Size representa el tamaño en pixeles que tendra como ancho y alto el avatar y el último parámetro muestra una imágen por defecto en caso que el e-mail no esté registrado en gravatar, si no se coloca este parámetro veremos el logo de Gravatar en caso el Email no exista.

Como se ve, no es muy complicado, basta con obtener el hash MD5 de la dirección de correo electrónico que se desea y eso lo hacemos con el siguiente método:

private string ObtenerMD5(string email)
{
MD5 md5 = MD5CryptoServiceProvider.Create();
ASCIIEncoding encoding = new ASCIIEncoding();

byte[] stream = md5.ComputeHash(encoding.GetBytes(email));

StringBuilder sb = new StringBuilder();

for (int i = 0; i < stream.Length; i++)
sb.AppendFormat(”{0:x2}”, stream[i]);

return sb.ToString();
}

Creo que esa es la parte más complicada de todo, lo demás es solo asignar en la propiedad ImageUrl del objeto Image un string con los datos indicados. Algo que hay que tener en consideración es que la imágen opcional (tercer parámetro) debe ser una ruta completa, es decir debemos indicar por ejemplo: http://hanzcocchi.net/imagenes/nofoto.jpg y no se puede enviar una ruta relativa, es decir, si yo envío solo imagenes/nofoto.jpg no funcionará. Pueden revisar el código y revisarlo asi como mejorarlo y todo lo demás, si le hacen alguna mejora, no se olviden de compartirla.

Descargar ejemplo Implementar Gravatar en ASP .Net

Espero que les sea de utilidad.

Saludos.