Developer and self-hosted
Synology Chat
स्थिति: Synology Chat Webhook का उपयोग करने वाला बंडल किया गया Plugin सीधे संदेश वाला चैनल। Plugin Synology Chat के बाहर जाने वाले Webhook से आने वाले संदेश स्वीकार करता है और Synology Chat के आने वाले Webhook के ज़रिए जवाब भेजता है।
बंडल किया गया Plugin
Synology Chat मौजूदा OpenClaw रिलीज़ में बंडल किए गए Plugin के रूप में शिप होता है, इसलिए सामान्य पैकेज किए गए बिल्ड को अलग इंस्टॉल की ज़रूरत नहीं होती।
यदि आप पुराने बिल्ड पर हैं या किसी ऐसे कस्टम इंस्टॉल पर हैं जिसमें Synology Chat शामिल नहीं है, तो इसे मैन्युअल रूप से इंस्टॉल करें:
स्थानीय चेकआउट से इंस्टॉल करें:
openclaw plugins install ./path/to/local/synology-chat-pluginविवरण: Plugin
त्वरित सेटअप
- सुनिश्चित करें कि Synology Chat Plugin उपलब्ध है।
- मौजूदा पैकेज किए गए OpenClaw रिलीज़ इसे पहले से बंडल करते हैं।
- पुराने/कस्टम इंस्टॉल ऊपर दिए गए कमांड से इसे स्रोत चेकआउट से मैन्युअल रूप से जोड़ सकते हैं।
openclaw onboardअब Synology Chat को उसी चैनल सेटअप सूची में दिखाता है जिसमेंopenclaw channels addहै।- गैर-इंटरैक्टिव सेटअप:
openclaw channels add --channel synology-chat --token <token> --url <incoming-webhook-url>
- Synology Chat इंटीग्रेशन में:
- एक आने वाला Webhook बनाएँ और उसका URL कॉपी करें।
- अपने गुप्त टोकन के साथ एक बाहर जाने वाला Webhook बनाएँ।
- बाहर जाने वाले 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 बॉट को DM भेजें।
Webhook प्रमाणीकरण विवरण:
- OpenClaw बाहर जाने वाले Webhook टोकन को पहले
body.tokenसे, फिर?token=...से, और फिर हेडर से स्वीकार करता है। - स्वीकार किए गए हेडर रूप:
x-synology-tokenx-webhook-tokenx-openclaw-tokenAuthorization: Bearer <token>
- खाली या अनुपस्थित टोकन fail closed करते हैं।
न्यूनतम कॉन्फ़िग:
{ 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, }, },}एनवायरनमेंट वेरिएबल
डिफ़ॉल्ट खाते के लिए, आप env vars का उपयोग कर सकते हैं:
SYNOLOGY_CHAT_TOKENSYNOLOGY_CHAT_INCOMING_URLSYNOLOGY_NAS_HOSTSYNOLOGY_ALLOWED_USER_IDS(कॉमा से अलग)SYNOLOGY_RATE_LIMITOPENCLAW_BOT_NAME
कॉन्फ़िग मान env vars को ओवरराइड करते हैं।
SYNOLOGY_CHAT_INCOMING_URL को वर्कस्पेस .env से सेट नहीं किया जा सकता; वर्कस्पेस .env फ़ाइलें देखें।
DM नीति और एक्सेस नियंत्रण
dmPolicy: "allowlist"अनुशंसित डिफ़ॉल्ट है।allowedUserIdsSynology यूज़र ID की सूची (या कॉमा से अलग स्ट्रिंग) स्वीकार करता है।allowlistमोड में, खालीallowedUserIdsसूची को गलत कॉन्फ़िगरेशन माना जाता है और Webhook रूट शुरू नहीं होगा (सबको अनुमति देने के लिएallowedUserIds: ["*"]के साथdmPolicy: "open"का उपयोग करें)।dmPolicy: "open"सार्वजनिक DM को केवल तब अनुमति देता है जबallowedUserIdsमें"*"शामिल हो; प्रतिबंधात्मक एंट्री के साथ, केवल मेल खाने वाले यूज़र चैट कर सकते हैं।dmPolicy: "disabled"DM को ब्लॉक करता है।- जवाब प्राप्तकर्ता बाइंडिंग डिफ़ॉल्ट रूप से स्थिर संख्यात्मक
user_idपर रहती है।channels.synology-chat.dangerouslyAllowNameMatching: truebreak-glass संगतता मोड है जो जवाब डिलीवरी के लिए बदल सकने वाले यूज़रनेम/निकनेम लुकअप को फिर से सक्षम करता है। - पेयरिंग अनुमोदन इनके साथ काम करते हैं:
openclaw pairing list synology-chatopenclaw pairing approve synology-chat <CODE>
आउटबाउंड डिलीवरी
लक्ष्य के रूप में संख्यात्मक Synology Chat यूज़र 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"openclaw message send --channel synology-chat --target synology:123456 --text "Short prefix"मीडिया भेजना URL-आधारित फ़ाइल डिलीवरी से समर्थित है।
आउटबाउंड फ़ाइल URL को http या https का उपयोग करना होगा, और निजी या अन्यथा ब्लॉक किए गए नेटवर्क लक्ष्य OpenClaw द्वारा URL को NAS Webhook पर फ़ॉरवर्ड करने से पहले अस्वीकार कर दिए जाते हैं।
मल्टी-अकाउंट
channels.synology-chat.accounts के अंतर्गत कई Synology Chat खाते समर्थित हैं।
हर खाता टोकन, आने वाला URL, Webhook पाथ, DM नीति और सीमाएँ ओवरराइड कर सकता है।
सीधे संदेश वाले सेशन प्रति खाता और यूज़र अलग-थलग रहते हैं, इसलिए दो अलग-अलग Synology खातों पर वही संख्यात्मक user_id
ट्रांसक्रिप्ट स्थिति साझा नहीं करता।
हर सक्षम खाते को अलग webhookPath दें। OpenClaw अब डुप्लिकेट सटीक पाथ अस्वीकार करता है
और मल्टी-अकाउंट सेटअप में केवल साझा Webhook पाथ इनहेरिट करने वाले नामित खातों को शुरू करने से मना करता है।
यदि आपको किसी नामित खाते के लिए जानबूझकर लेगसी इनहेरिटेंस चाहिए, तो उस खाते पर या channels.synology-chat पर
dangerouslyAllowInheritedWebhookPath: true सेट करें,
लेकिन डुप्लिकेट सटीक पाथ अभी भी fail-closed अस्वीकार किए जाते हैं। प्रति-खाता स्पष्ट पाथ को प्राथमिकता दें।
{ 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 अनुरोध टोकन-सत्यापित होते हैं और प्रति प्रेषक रेट-लिमिटेड होते हैं।
- अमान्य टोकन जाँच constant-time गुप्त तुलना का उपयोग करती है और fail closed करती है।
- प्रोडक्शन के लिए
dmPolicy: "allowlist"को प्राथमिकता दें। dangerouslyAllowNameMatchingको बंद रखें जब तक कि आपको स्पष्ट रूप से लेगसी यूज़रनेम-आधारित जवाब डिलीवरी की ज़रूरत न हो।dangerouslyAllowInheritedWebhookPathको बंद रखें जब तक कि आप मल्टी-अकाउंट सेटअप में साझा-पाथ रूटिंग जोखिम को स्पष्ट रूप से स्वीकार न करते हों।
समस्या निवारण
Missing required fields (token, user_id, text):- बाहर जाने वाले Webhook पेलोड में आवश्यक फ़ील्ड में से कोई एक अनुपस्थित है
- यदि Synology टोकन हेडर में भेजता है, तो सुनिश्चित करें कि Gateway/प्रॉक्सी उन हेडर को संरक्षित रखता है
Invalid token:- बाहर जाने वाला Webhook गुप्त
channels.synology-chat.tokenसे मेल नहीं खाता - अनुरोध गलत खाते/Webhook पाथ पर जा रहा है
- रिवर्स प्रॉक्सी ने अनुरोध OpenClaw तक पहुँचने से पहले टोकन हेडर हटा दिया
- बाहर जाने वाला Webhook गुप्त
Rate limit exceeded:- एक ही स्रोत से बहुत अधिक अमान्य टोकन प्रयास उस स्रोत को अस्थायी रूप से लॉक आउट कर सकते हैं
- प्रमाणित प्रेषकों के लिए अलग प्रति-यूज़र संदेश रेट लिमिट भी होती है
Allowlist is empty. Configure allowedUserIds or use dmPolicy=open with allowedUserIds=["*"].:dmPolicy="allowlist"सक्षम है लेकिन कोई यूज़र कॉन्फ़िगर नहीं है
User not authorized:- प्रेषक का संख्यात्मक
user_idallowedUserIdsमें नहीं है
- प्रेषक का संख्यात्मक
संबंधित
- चैनल अवलोकन — सभी समर्थित चैनल
- पेयरिंग — DM प्रमाणीकरण और पेयरिंग प्रवाह
- समूह — समूह चैट व्यवहार और मेंशन गेटिंग
- चैनल रूटिंग — संदेशों के लिए सेशन रूटिंग
- सुरक्षा — एक्सेस मॉडल और हार्डनिंग