OpenClaw 白皮书
Synology Chat(插件)
状态:通过插件支持,作为使用 Synology Chat webhook 的私信通道。
该插件接受来自 Synology Chat 出站 webhook 的入站消息,并通过 Synology Chat 入站 webhook 发送回复。
需要插件
Synology Chat 基于插件,不属于默认核心通道安装的一部分。
从本地检出安装:
bashopenclaw plugins install ./extensions/synology-chat
详情:插件
快速设置
- ✦安装并启用 Synology Chat 插件。
- ✦在 Synology Chat 集成中:
- ✦创建一个入站 webhook 并复制其 URL。
- ✦创建一个带有你的密钥令牌的出站 webhook。
- ✦将出站 webhook URL 指向你的 OpenClaw Gateway 网关:
- ✦默认为
https://gateway-host/webhook/synology。 - ✦或你自定义的
channels.synology-chat.webhookPath。
- ✦默认为
- ✦在 OpenClaw 中配置
channels.synology-chat。 - ✦重启 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_TOKEN - ✦
SYNOLOGY_CHAT_INCOMING_URL - ✦
SYNOLOGY_NAS_HOST - ✦
SYNOLOGY_ALLOWED_USER_IDS(逗号分隔) - ✦
SYNOLOGY_RATE_LIMIT - ✦
OPENCLAW_BOT_NAME
配置值会覆盖环境变量。
私信策略和访问控制
- ✦
dmPolicy: "allowlist"是推荐的默认值。 - ✦
allowedUserIds接受 Synology 用户 ID 的列表(或逗号分隔的字符串)。 - ✦在
allowlist模式下,空的allowedUserIds列表被视为配置错误,webhook 路由将不会启动(使用dmPolicy: "open"表示允许所有人)。 - ✦
dmPolicy: "open"允许任何发送者。 - ✦
dmPolicy: "disabled"阻止私信。 - ✦配对审批通过以下命令进行:
- ✦
openclaw pairing list synology-chat - ✦
openclaw pairing approve synology-chat <CODE>
- ✦
出站消息投递
使用数字格式的 Synology Chat 用户 ID 作为目标。
示例:
bashopenclaw 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 账户。
每个账户可以覆盖令牌、入站 URL、webhook 路径、私信策略和限制。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的机密性,泄露时及时轮换。 - ✦保持
allowInsecureSsl: false,除非你明确信任自签名的本地 NAS 证书。 - ✦入站 webhook 请求会进行令牌验证和按发送者速率限制。
- ✦生产环境建议使用
dmPolicy: "allowlist"。