laravelでslack通知を実装する
laravelにはメールやslack通知の機能が備わっている。
通知はmail、database、broadcast、nexmo、slackへ送れる。 通知するためのメソッドとして、以下のようなものが用意されている。
toMail() toSlack()
複数指定して送ることもできる。 結構前にやったことだから忘れてるけど、メモを発見したので、とりあえず残しておく。
slack通知
laravelにはslackで通知するためのものが備わっている。
Notificationsを作成する
$ php artisan make:notification 好きな名前
作成されたクラスのvia
関数を編集する。
public function via($notifiable) { return ['slack']; // ['mail', 'slack']等複数指定も可能。 }
メッセージを作成する
use Illuminate\Notifications\Messages\SlackMessage; public function toSlack($notifiable) { return (new SlackMessage) ->success() ->content('問題が発生しました') ->attachment(function ($attachment) { $attachment->title('エラーです。') ->content('エラーログ。。'); }); }
slack通知ならtoSlack()、メール通知ならtoMail()等の関数が存在する。
slack通知の文言の色やレイアウトは、少しカスタマイズできる。色々編集してみてslackに通知してみるといい。
WebHook URLを追加する
モデルに以下のようにメソッドを記述し、WebHook URLを追加する。
public function routeNotificationForSlack() { return 'https://hooks.slack.com/services/xxxx/xxxx/xxxx'; }
設定したslackのメソッドはnotify
で発火させることができる。