概觀
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 建立 Webhook URL。詳細請參閱 Discord 官方指南。config/services.php
.env
基本用法
建立 Notification 類別
實作toDiscordWebhook() 方法,並於 via() 傳回 DiscordChannel::class。
傳送模式
On-Demand 通知
若不綁定特定 User 模型即傳送通知,可使用Notification::route()。
從 User 模型傳送通知
若要為每個 User 使用不同的 Webhook URL,可定義routeNotificationForDiscordWebhook()。
訊息類型
文字訊息
最簡單的傳送方式。Embed 訊息
使用DiscordEmbed 可呈現包含標題與 URL 的豐富顯示。
檔案附件
使用DiscordAttachment 可以附加檔案傳送。content(檔案內容)與 filename 為必填。
於 Embed 中參照檔案
可於 Embed 的image 或 thumbnail 以 attachment://檔名 參照附件檔案。
傳送任意 Payload
使用->with() 可直接指定 Discord Webhook 的任意參數。
總結
Discord Bot 雖然強大,但若只是要傳送通知,Webhook 簡潔許多。使用本套件可以無縫整合 Laravel 的通知系統,快速將應用程式事件通知至團隊的 Discord 頻道。最新資訊請參閱 GitHub 儲存庫。