Synology Chat 机器人与集成指南
Synology Chat 不仅仅是一个聊天工具,通过 Webhook 和机器人,它可以成为你的通知中心和运维控制台。
1. Incoming Webhook (消息推送)
最简单的集成方式,向 Chat 发送消息。 - 场景:NAS 掉线报警、GitHub 代码提交通知、股票价格提醒。 - 配置:Chat >以此用户头像 > 整合 > 传入 Webhook > 创建。 - 使用 (Curl):
curl -X POST \
--data-urlencode 'payload={"text": "Hello World"}' \
"https://your-nas/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=YOUR_TOKEN"
[Link](url),但不支持复杂的富文本。 2. Outgoing Webhook (交互式机器人)
让 Chat 能“听懂”你的指令。 - 场景:在聊天窗口输入 /ip,机器人回复当前 NAS 的公网 IP。 - 原理:Chat 将你的消息 POST 给一个外部 HTTP 服务器,服务器处理后返回 JSON。 - 配置:Chat > 整合 > 传出 Webhook。 - 触发词:例如 ! 或 /。 - 后端:可以使用 Docker 部署一个简单的 Python Flask 或 Node.js 服务来处理请求。
3. 机器人 (Bots)
- 区别:Webhook 是被动的,Bot 是主动的账号。
- 技巧:创建一个专门的“运维机器人”账号,专门用来发送系统通知,避免和真人混淆。
4. 斜杠命令 (Slash Commands)
- 技巧:虽然 Chat 官方叫“斜杠命令”,但实际上是通过 Outgoing Webhook 实现的。
- 案例:
/docker restart jellyfin:重启容器。/wol pc:唤醒电脑。
5. 整合第三方服务 (IFTTT / Zapier)
- 技巧:虽然 Chat 没有直接接入 IFTTT,但可以通过 Webhook 中转。
- 流程:IFTTT (Trigger) -> Webhook (Action) -> Synology Chat Incoming URL。
6. 发送文件与图片
- 限制:Incoming Webhook 主要发送文本。
- 技巧:如果需要发送图片(如监控截图),可以在 payload 中使用
file_url参数(图片必须是公网可访问的 URL)。
7. 频道管理与权限
- 私有频道:适合敏感通知(如 SSH 登录报警)。
- 公有频道:适合通用的公告(如“今晚服务器维护”)。
- 技巧:Webhook 可以绑定到特定频道,也可以绑定到特定用户。
8. 结合 Task Scheduler (任务计划)
- 脚本:编写 Shell 脚本监控磁盘空间,当空间 < 10% 时,通过
curl调用 Chat Webhook 发送报警。 - 代码片段:
9. 桌面客户端快捷键
- 技巧:
Ctrl + K:快速跳转频道(类似 Slack)。Up键:编辑上一条消息。Ctrl + F:搜索聊天记录。
10. 消息加密
- 功能:Chat 支持端到端加密频道。
- 注意:加密频道不支持 Webhook 和机器人。如果需要机器人功能,必须使用普通频道。