5

我尝试在我的频道上发送一个简单的 slack 通知,以了解客户何时购买或注册,但我遇到了错误,我在网络上找不到任何解决方案。

这是我的通知 SlackNotification.php :

<?php

namespace App\Notifications;

use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Messages\SlackMessage;

class SlackNotification extends Notification
{
    use Queueable;

    /**
     * Create a new notification instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

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

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

        return (new SlackMessage)
                ->from('Ghost', ':ghost:')
                ->to('#new-user-notification')
                ->content('Hello World !');
    }

    /**
     * Get the array representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function toArray($notifiable)
    {
        return [
            //
        ];
    }
}

我还按照文档要求更新 User.php (当然是我的个人代码)

public function routeNotificationForSlack($notification)
{
    return 'https://hooks.slack.com/services/XXXXXXXXXXXX';
}

然后当客户在我的网站上购买东西时

$user->notify(new SlackNotification);

所有的使用都是正确的。

即使我用这样的外观发出通知

\Notification::route('slack', env('SLACK_HOOK'))->notify(new SlackNotification());

我每次都得到这个结果:

InvalidArgumentException Driver [slack] not supported.
4

2 回答 2

8

作曲家没有更新......这是我找到的解决方案!

composer require laravel/slack-notification-channel
于 2019-10-18T13:55:58.587 回答
1

就我而言,我有一个只有 2048 MB RAM 的 Homestead VM。我composer require laravel/slack-notification-channel第一次运行时,内存不足导致失败,但突然成功安装包,但经过测试,上述错误仍然存​​在。

然后我不得不关闭我的虚拟机,暂时将其 RAM 升级到 4096 MB,编辑Homestead.yaml以识别这些相同的 4096 MB,然后我再次打开它,一旦我通过 SSH 连接,我再次运行composer require laravel/slack-notification-channel,然后. 由于我的机器资源有限,在恢复所有与临时 RAM 升级相关的更改后,我不得不再次以 2048 MB 重新启动它。composer dumpautoloadcomposer install

启动后,我进行了测试,然后它运行良好。我相信该软件包没有安装好,或者它已损坏,或者类似的东西。

于 2020-07-13T15:38:59.110 回答