Enviar notificaciones de Slack con Laravel 8
En este artículo aprenderemos de forma rápida y sencilla sobre cómo enviar notificaciones de Slack utilizando Laravel 8
Paso 1. Instale el canal de notificación de Slack
Antes de poder enviar notificaciones a través de Slack, debe instalar el canal de notificación de Slack a través de Composer:
composer require laravel/slack-notification-channel
Paso 2. Cree y configure la notificación
En Laravel, cada notificación está representada por una sola clase que normalmente se almacena en el directorio app/Notifications
. No se preocupe si no ve este directorio en su aplicación; se creará cuando ejecute el comando make:notification
Artisan:
php artisan make:notification SendNotification
A continuación, configure la aplicación de app/Notification/SendNotification
<?php namespace App\Notifications;use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Notifications\Messages\MailMessage; use Illuminate\Notifications\Notification; use Illuminate\Notifications\Messages\SlackMessage;class SendNotification extends Notification { use Queueable; private $user; public function __construct($user) { $this->user = $user; } public function via($notifiable) { return ['slack']; } public function toSlack($notifiable) { return (new SlackMessage) ->content('Enviando nuestro primer mensaje con Slack'); } }
Paso 3. Crea y configura el canal Slack
También deberá configurar una integración de “Webhook entrante” para su equipo de Slack. Esta integración le proporcionará una URL que puede usar al enrutar notificaciones de Slack.
3.1 Agregar a Salck
3.2 Agregar integración con WebHooks entrantes
3.3 Guardar
Paso 4. Uso del rasgo notificable
Las notificaciones se pueden enviar de dos maneras: utilizando el método de notify
del rasgo Notificable o utilizando la fachada de Notification
. El rasgo de Notifiable
se incluye en el modelo App\Models\User
de su aplicación de forma predeterminada:
<?php namespace App\Models; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; class User extends Authenticatable { use Notifiable; public function routeNotificationForSlack($notification) { return 'https://hooks.slack.com/services/...'; } }
Paso 5. Enviar notificación
Puede enviar notificaciones a través del rasgo de notify
o, alternativamente, puede enviar notificaciones a través de la fachada de Notification
. Este enfoque es útil cuando necesita enviar una notificación a varias entidades notificables, como una colección de usuarios.
Rasgo notify
use App\Notifications\SendNotification; $user->notify(new SendNotification($invoice));
Fachada Notification
use Illuminate\Support\Facades\Notification; Notification::send($users, new SendNotification($invoice));
Gracias por leer. Si te gusta esto… ¡dame un like!