Laravel 5.5 如何通过Slack实现无模型按需通知
解决Laravel按需通知的Slack配置问题
要让你的按需通知正常发送到Slack,只需要完成以下几步配置:
1. 获取Slack Incoming Webhook URL
首先你需要在Slack工作区创建一个Incoming Webhook:
- 登录Slack后,打开应用管理界面,选择「创建应用」,选「从头开始创建」,给应用命名并关联你的工作区
- 进入应用后,找到「添加功能和特性」,选择「Incoming Webhooks」并开启它
- 点击「添加新的Webhook到工作区」,选择你要发送通知的频道,完成授权后就能得到一个类似
https://hooks.slack.com/services/XXX/YYY/ZZZ的URL,复制这个地址。
2. 修改你的通知代码
把刚才复制的Webhook URL填到route('slack', ...)的第二个参数里就行,推荐把URL存在.env文件里(避免硬编码敏感信息):
// .env文件里添加 SLACK_WEBHOOK_URL=https://hooks.slack.com/services/XXX/YYY/ZZZ // 你的通知代码 $emailAddress = 'my email address'; Notification::route('mail', $emailAddress) ->route('slack', env('SLACK_WEBHOOK_URL')) // 这里填Webhook URL或者env变量 ->notify(new TestNotification());
3. 确保TestNotification支持Slack通知
你的TestNotification类需要实现toSlack方法,告诉Laravel如何生成Slack消息:
use Illuminate\Notifications\Notification; use Illuminate\Notifications\Messages\SlackMessage; class TestNotification extends Notification { // 按需通知会覆盖via方法,但建议保留支持的渠道列表,保持逻辑清晰 public function via($notifiable) { return ['mail', 'slack']; } // 定义Slack消息内容 public function toSlack($notifiable) { return (new SlackMessage) ->success() // 可选,设置消息样式为成功状态 ->content('这是一条来自Laravel的按需测试通知!'); } // 你已有的toMail方法(之前能正常运行的邮件逻辑) public function toMail($notifiable) { // 现有邮件代码... } }
这样修改后,你的代码就能同时发送邮件和Slack通知了。
内容的提问来源于stack exchange,提问作者Edwin
相关产品推荐
相关产品推荐

