整合 OpenClaw 與 Synology Chat:5 分鐘完成設定
每次想把自動化通知整合到公司的 NAS 系統,總是要寫一堆重複的 Webhook 邏輯,處理訊息格式和安全性問題真的很煩人。如果你正在尋找一個簡單的方法讓 Synology Chat 變成你的自動化助手,這篇教學就是為你準備的。
我們讓 Synology Chat 透過 plugin 支援私訊頻道。這個 plugin 會接收來自 Synology Chat outgoing webhooks 的訊息,並透過 incoming webhook 回傳回覆。
需要安裝 Plugin
Section titled “需要安裝 Plugin”Synology Chat 是以 plugin 為基礎的,並未包含在預設的核心頻道安裝中。
從本地路徑安裝:
openclaw plugins install ./path/to/local/synology-chat-plugin詳細資訊請參考:Plugins
- 安裝並啟用 Synology Chat plugin。
- 現在
openclaw onboard會在頻道設定清單中顯示 Synology Chat,就像openclaw channels add一樣。 - 非互動式設定:
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 機器人。
最小化配置範例:
{ 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
設定檔中的數值會覆蓋環境變數。
私訊政策與存取控制
Section titled “私訊政策與存取控制”- 建議預設使用
dmPolicy: "allowlist"。 allowedUserIds接受一個清單(或逗號分隔的字串),填入 Synology user 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 user ID 作為目標。
範例:
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 path、私訊政策與限制。私訊對話在每個帳號與使用者之間是獨立的,因此兩個不同 Synology 帳號上相同的數字 user_id 不會共享對話狀態。
請為每個啟用的帳號提供獨立的 webhookPath。OpenClaw 現在會拒絕重複的完整路徑,並在多帳號設定中拒絕啟動那些僅繼承共享 webhook path 的具名帳號。如果你刻意需要具名帳號使用舊有的繼承機制,請在該帳號或 channels.synology-chat 設定 dangerouslyAllowInheritedWebhookPath: true,但重複的精確路徑仍會因安全考量而被拒絕。建議為每個帳號設定明確的路徑。
{ 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"], }, }, }, },}安全注意事項
Section titled “安全注意事項”- 務必保護好你的
token,如果外洩請立即更換。 - 除非你明確信任自簽署的本地 NAS 憑證,否則請保持
allowInsecureSsl: false。 - 傳入的 Webhook 請求會經過 token 驗證,並針對每個傳送者進行速率限制。
- 生產環境建議優先使用
dmPolicy: "allowlist"。 - 除非你明確需要舊版的使用者名稱回覆功能,否則請關閉
dangerouslyAllowNameMatching。 - 除非你明確接受多帳號設定中共享路徑的路由風險,否則請關閉
dangerouslyAllowInheritedWebhookPath。
- Channels Overview — 所有支援的頻道
- Pairing — 私訊認證與配對流程
- Groups — 群組聊天行為與提及過濾
- Channel Routing — 訊息的對話路由
- Security — 存取模型與強化
想要更快速完成設定嗎?試試我們的 AI Setup Assistant。
- 設定你的 Pairing 流程
- 了解如何進行 Channel Routing
OpenClaw Expert
還是卡住了?
如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。