0

当 Notification 类实现 ShouldQueue 时,我正在努力发送 Slack 通知。

这就是我发送通知的方式

    /**
     * Handles the sendout of booking request confirmation to the customer 
     *
     * @return void
     */
    public function sendCustomerNotifications()
    {
        $this->booking->customer->notify((new CustomerBookingRequested($this->booking)));
    }

这就是我的 CustomerBookingRequested 通知类的样子

class CustomerBookingRequested extends Notification implements ShouldQueue
{
    use Queueable;

    private $booking;
    /**
     * Create a new notification instance.
     *
     * @return void
     */
    public function __construct(Booking $booking)
    {
        //
        $this->booking = $booking;
    }

    /**
     * Get the notification's delivery channels.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        return ['mail','slack'];
    }
    ...
    //code for toMail
    ...

    /**
     * Get the Slack representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return \Illuminate\Notifications\Message\SlackMessage
     */
    public function toSlack($notifiable)
    {

        return (new SlackMessage)
                        ->success()
                        ->content('New booking requested!');
    }

我的客户模型使用通知

class Customer extends Model implements HasLocalePreference
{
    use HasFactory;
    use Billable;
    use SoftDeletes;
    use Notifiable;
...

我还在我的客户模型中添加了路由方法

/**
     * Route notifications for the Slack channel.
     *
     * @param  \Illuminate\Notifications\Notification  $notification
     * @return string
     */
    public function routeNotificationForSlack($notification)
    {
        return env('SLACK_WEBHOOK');
    }

当我从 Notification 类中删除implements ShouldQueue时,会发送 Slack 和 Mail Message。当我保持实现 ShouldQueue 时,发送 Mail 消息,不发送 Slack 消息。

我基本上想向客户发送带有预订确认的邮件通知。同时我想向团队的 Slack 工作区发送一条 Slack 消息。这就是为什么我刚刚在客户模型中添加了一个静态 webhook URL,它链接到公司的 slack 工作区。

我有点卡在这里。可能这是显而易见的,但我找不到我做错了什么。

谢谢你的支持!

Using Laravel 8.0 with "laravel/slack-notification-channel": "^2.3"
4

0 回答 0