通过 Synology Chat webhook 接入私信。插件接收 Synology Chat 出站 webhook 的入站消息,通过入站 webhook 发送回复。

快速设置

  1. 在 Synology Chat 集成中:
    • 创建入站 webhook,复制 URL
    • 创建出站 webhook,设置 secret token
  2. 将出站 webhook URL 指向 Gateway:https://gateway-host/webhook/synology
  3. 配置 OpenClaw:
{
  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=...",
      dmPolicy: "allowlist",
      allowedUserIds: ["123456"],
    },
  },
}

CLI 快速设置

openclaw channels add --channel synology-chat --token <token> --url <incoming-webhook-url>

环境变量(默认账号)

  • SYNOLOGY_CHAT_TOKEN
  • SYNOLOGY_CHAT_INCOMING_URL
  • SYNOLOGY_ALLOWED_USER_IDS(逗号分隔)

访问控制

  • dmPolicy: "allowlist"(推荐默认)
  • allowedUserIds:Synology 用户 ID 列表
  • dmPolicy: "open" 需要 allowedUserIds: ["*"]
  • 空 allowedUserIds 在 allowlist 模式下视为配置错误,webhook 路由不会启动
openclaw pairing list synology-chat
openclaw pairing approve synology-chat <CODE>

出站投递

使用数字 Synology Chat 用户 ID 作为目标:

openclaw message send --channel synology-chat --target 123456 --text "Hello"
openclaw message send --channel synology-chat --target synology-chat:123456 --text "Hello"

多账号

每个账号需要独立的 webhookPath,OpenClaw 拒绝重复路径:

{
  channels: {
    "synology-chat": {
      accounts: {
        default: { token: "token-a", incomingUrl: "https://nas-a.example.com/..." },
        alerts: {
          token: "token-b",
          incomingUrl: "https://nas-b.example.com/...",
          webhookPath: "/webhook/synology-alerts",
        },
      },
    },
  },
}

故障排查

  • Invalid token:出站 webhook secret 与 token 不匹配,或反向代理剥离了 token header
  • Allowlist is empty:dmPolicy="allowlist" 但未配置用户
  • User not authorized:发送者 user_id 不在 allowedUserIds 中

相关链接