概要
revolution/laravel-notification-discord-webhook は、Discord Webhook を使って Laravel Notifications から Discord に通知を送るパッケージです。 Discord の正式な Bot API は WebSocket 接続を維持する必要があり、セットアップが複雑です。Webhook なら URL を取得するだけで通知を送れます。チームの Discord チャンネルにアプリのイベントを通知したいだけであれば、Webhook が最適な選択です。このパッケージは PHP 8.3 以上、Laravel 12.0 以上が必要です。
インストール
設定
Discord の Webhook URL を取得する
Discord サーバーの 設定 → 連携サービス → ウェブフック から Webhook URL を作成できます。詳細は Discord の公式ガイド を参照してください。config/services.php
.env
基本的な使い方
Notification クラスを作成する
toDiscordWebhook() メソッドを実装し、via() で DiscordChannel::class を返します。
送信パターン
On-Demand 通知
特定のユーザーモデルに紐づけずに通知を送る場合は、Notification::route() を使います。
User モデルからの通知
User ごとに異なる Webhook URL を使う場合は、routeNotificationForDiscordWebhook() を定義します。
メッセージタイプ
テキストメッセージ
最もシンプルな送信方法です。Embed メッセージ
DiscordEmbed を使うとタイトルや URL を含むリッチな表示ができます。
ファイル添付
DiscordAttachment を使うとファイルを添付して送信できます。content(ファイルの中身)と filename が必須です。
Embed 内でのファイル参照
Embed のimage や thumbnail に添付ファイルを attachment://ファイル名 で参照できます。
任意のペイロードを送信する
->with() を使うと、Discord Webhook の任意のパラメータを直接指定できます。
まとめ
Discord Bot は強力ですが、単に通知を送るだけであれば Webhook がずっとシンプルです。このパッケージを使えば、Laravel の通知システムとシームレスに統合して、チームの Discord チャンネルにアプリのイベントをすばやく通知できます。最新情報は GitHub リポジトリ を参照してください。