Slack: Enviar notificaciones con Laravel 8

slack

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

Slack

3.2 Agregar integración con WebHooks entrantes

Slack

3.3 Guardar

Slack


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!

Recent Post