Appearance
Synology Chat(插件)
状态:通过插件支持,作为使用 Synology Chat webhook 的私信渠道。 插件接收来自 Synology Chat 出站 webhook 的消息,并通过 Synology Chat 入站 webhook 发送回复。
需要安装插件
Synology Chat 基于插件实现,不属于默认核心渠道。
从本地 checkout 安装:
bash
openclaw plugins install ./extensions/synology-chat详情:插件系统
快速配置
想把小龙虾放进你的群晖,按以下步骤操作:
- 安装并启用 Synology Chat 插件。
openclaw onboard现在会在与openclaw channels add相同的渠道设置列表中显示 Synology Chat。- 非交互式配置:
openclaw channels add --channel synology-chat --token <token> --url <incoming-webhook-url>
- 在 Synology Chat 集成中:
- 创建一个入站 webhook 并复制其 URL。
- 创建一个出站 webhook 并设置你的 secret token。
- 将出站 webhook URL 指向你的 OpenClaw Gateway:
- 默认:
https://gateway-host/webhook/synology - 或使用自定义的
channels.synology-chat.webhookPath。
- 默认:
- 在 OpenClaw 中完成配置:
- 引导式:
openclaw onboard - 直接配置:
openclaw channels add --channel synology-chat --token <token> --url <incoming-webhook-url>
- 引导式:
- 重启 Gateway 并向 Synology Chat 机器人发送私信。
最小配置示例:
json5
{
channels: {
"synology-chat": {
enabled: true,
token: "synology-outgoing-token",
incomingUrl: "https://nas.example.com/webapi/entry.cgi?api=SYNO.Chat.External&method=incoming&version=2&token=...",
webhookPath: "/webhook/synology",
dmPolicy: "allowlist",
allowedUserIds: ["123456"],
rateLimitPerMinute: 30,
allowInsecureSsl: false,
},
},
}环境变量
对于默认账号,可以使用以下环境变量:
SYNOLOGY_CHAT_TOKENSYNOLOGY_CHAT_INCOMING_URLSYNOLOGY_NAS_HOSTSYNOLOGY_ALLOWED_USER_IDS(逗号分隔)SYNOLOGY_RATE_LIMITOPENCLAW_BOT_NAME
配置文件中的值会覆盖环境变量。
私信策略与访问控制
dmPolicy: "allowlist"是推荐的默认值。allowedUserIds接受 Synology 用户 ID 列表(或逗号分隔字符串)。allowlist模式下,空的allowedUserIds列表被视为配置错误,webhook 路由不会启动(如需允许所有人,使用dmPolicy: "open")。dmPolicy: "open"允许任何发送方。dmPolicy: "disabled"屏蔽所有私信。- 回复接收方绑定默认使用稳定的数字
user_id。channels.synology-chat.dangerouslyAllowNameMatching: true是应急兼容模式,会重新启用可变的用户名/昵称查找用于回复投递。 - 配对批准方式:
openclaw pairing list synology-chatopenclaw pairing approve synology-chat <CODE>
出站投递
使用数字 Synology Chat 用户 ID 作为目标。
示例:
bash
openclaw message send --channel synology-chat --target 123456 --text "Hello from OpenClaw"
openclaw message send --channel synology-chat --target synology-chat:123456 --text "Hello again"支持基于 URL 的文件投递发送媒体。
多账号
channels.synology-chat.accounts 下支持多个 Synology Chat 账号。每个账号可以独立覆盖 token、incoming URL、webhook 路径、私信策略和频率限制。私信会话按账号和用户隔离,同一数字 user_id 在两个不同 Synology 账号上不共享对话记录。
每个已启用的账号必须有独立的 webhookPath。OpenClaw 现在会拒绝完全重复的路径,并拒绝仅继承共享 webhook 路径的命名账号启动。如确实需要传统继承模式,可在该账号或 channels.synology-chat 上设置 dangerouslyAllowInheritedWebhookPath: true,但仍会拒绝完全重复路径(故障关闭)。建议每个账号显式指定路径。
json5
{
channels: {
"synology-chat": {
enabled: true,
accounts: {
default: {
token: "token-a",
incomingUrl: "https://nas-a.example.com/...token=...",
},
alerts: {
token: "token-b",
incomingUrl: "https://nas-b.example.com/...token=...",
webhookPath: "/webhook/synology-alerts",
dmPolicy: "allowlist",
allowedUserIds: ["987654"],
},
},
},
},
}安全注意事项
- 保管好
token,泄露后立即轮换。 - 除非明确信任自签名本地 NAS 证书,否则保持
allowInsecureSsl: false。 - 入站 webhook 请求经过 token 验证和按发送方限速。
- 生产环境推荐使用
dmPolicy: "allowlist"。 - 除非明确需要传统用户名回复投递,否则保持
dangerouslyAllowNameMatching关闭。 - 除非在多账号场景中明确接受共享路径路由风险,否则保持
dangerouslyAllowInheritedWebhookPath关闭。