跳转到内容

Synology Chat

状态:通过插件支持,作为使用 Synology Chat webhook 的私信通道。 该插件接受来自 Synology Chat 出站 webhook 的入站消息,并通过 Synology Chat 入站 webhook 发送回复。

Synology Chat 基于插件,不属于默认核心通道安装的一部分。

从本地检出安装:

Terminal window
openclaw plugins install ./extensions/synology-chat

详情:插件

  1. 安装并启用 Synology Chat 插件。
  2. 在 Synology Chat 集成中:
    • 创建一个入站 webhook 并复制其 URL。
    • 创建一个带有你的密钥令牌的出站 webhook。
  3. 将出站 webhook URL 指向你的 OpenClaw Gateway 网关:
    • 默认为 https://gateway-host/webhook/synology
    • 或你自定义的 channels.synology-chat.webhookPath
  4. 在 OpenClaw 中配置 channels.synology-chat
  5. 重启 Gateway 网关并向 Synology Chat 机器人发送私信。

最小配置:

{
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 作为目标。

示例:

Terminal window
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 账户。 每个账户可以覆盖令牌、入站 URL、webhook 路径、私信策略和限制。

{
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"