Comparte en Facebook Twitter Google+

banner-uso-gravatar-laravel

Gravatar (por su abreviación Globally Recognized Avatar) es un servicio para proporcionar un avatar reconocido globalmente asociado con un correo electrónico. Los usuarios que registran su cuenta en gravatar.com establecen una imagen deseada como avatar para un email en específico.  Ésta es una funcionalidad muy usada en comentarios de blogs y foros pero también podemos implementarlo en nuestras aplicaciones de Laravel de una manera sencilla, tan sólo con el email de nuestros usuarios.

Preparación

Vamos a crear una nueva aplicación para hacer las pruebas, ejecutando por consola en el directorio que queramos:

y configurando una base de datos para aplicación en el archivo .env

Para así, ejecutar la migración por defecto de la tabla users que trae Laravel, de esta manera:

Para probar creamos un usuario con el componente Seeders, modificando el archivo database/DatabaseSeeder.php  así:

Modifica name  y email  con tus datos.

Ejecutamos el seeder y luego verificamos que se crea el usuario en la base de datos:

Por último creamos una ruta para hacer las pruebas, en el archivo routes.php :

En el caso que tengas una aplicación de Laravel ya instalada verifica que las credenciales de la base de datos estén configuradas en el archivo .env, que exista una tabla de usuarios y que uno de sus atributos sea el correo electrónico.

Uso

Podemos implementar gravatar de 2 maneras: una manualmente usando la API de gravatar o por medio del paquete Gravatar que puedes encontrar en packalyst.com.

Para la primera opción es sencillo porque la API no requiere autenticación y son simples consultas de tipo GET, con ellas podemos crear un helper o asociarla con el modelo de usuarios.

Para asociar el gravatar al modelo User podemos modificar el archivo app/user.php colocando el método:

que nos devolverá el url del avatar de un usuario. Además que la API nos permite enviar parámetros como imagen default, tamaño, etc.

Si quieres hacerlo como helper puedes guiarte con: Cómo crear Helpers personalizados en Laravel

Podemos probarlo vamos a crear una vista para la ruta, en resources/views/avatar.blade.php 

loginUsingId es un método para autenticar a un usuario por su ID

Quedando como resultado:

vista-gravatar

Por otro lado la otra manera de implementar gravatar es usando el paquete Gravatar de CreativeOrange de la siguiente manera:

Ejecutamos por consola en el directorio raíz de la aplicación:

o modificamos el composer.json así:

luego ejecutamos composer update  para instalar el paquete.

Incluimos el service provider en config/app.php  en el array de ‘providers’ :

y agregamos el alias en el mismo archivo en el array ‘aliasses’:

Por último, ejecutamos php artisan vendor:publish  para copiar el archivo de configuración en config/gravatar.php. Con esto, ya lo tenemos instalado para empezar a usarlo.

Ahora podemos usar en los controladores o vistas para obtener la URL del avatar:

También nos da la opción de colocar una imagen por defecto en caso de que el usuario no esté registrado en gravatar

Si lo que queremos es comprobar si el usuario tiene una imagen gravatar asociada a su email:

Además podemos adaptar otras características como el tamaño, la extensión, entre otros y diferentes tamaños en el archivo config/gravatar.php, por ejemplo agregando una nuevo tamaño llamado ‘mediano’:

Modificamos la vista creada anteriormente sustituyendo el tag img por:

o simplemente pasar un array con la configuración deseada:

y al volver a visitar la ruta:

Material relacionado

¡Bien! espero que les sea de utilidad para sus proyectos de Laravel. No dejes de comentar en caso de duda y compartir en las redes sociales.

Regístrate hoy en Styde y continua mejorando tus habilidades: ver planes.

Lección anterior Importar datos desde Excel o CSV a Laravel Lección siguiente URLs amigables con Eloquent-Sluggable en Laravel