@openclaw/nextcloud-talk) है, जो Talk webhook बॉट के माध्यम से OpenClaw को स्वयं होस्ट किए गए Nextcloud इंस्टेंस से जोड़ता है। प्रत्यक्ष संदेश, रूम, प्रतिक्रियाएँ और markdown संदेश समर्थित हैं; मीडिया URL के रूप में भेजा जाता है।
इंस्टॉल करें
त्वरित सेटअप (शुरुआती)
- Plugin इंस्टॉल करें (ऊपर)।
-
अपने Nextcloud सर्वर पर एक बॉट बनाएँ:
--feature responseबनाए रखें: इसके बिना, आउटबाउंड उत्तर 401 के साथ विफल हो जाते हैं। किसी मौजूदा बॉट की मरम्मत./occ talk:bot:state --feature webhook --feature response --feature reaction <botId> 1से करें। - लक्षित रूम की सेटिंग में बॉट सक्षम करें।
-
OpenClaw कॉन्फ़िगर करें:
- कॉन्फ़िगरेशन:
channels.nextcloud-talk.baseUrl+channels.nextcloud-talk.botSecret - या परिवेश चर:
NEXTCLOUD_TALK_BOT_SECRET(केवल डिफ़ॉल्ट खाता)
--url/--tokenस्पष्ट फ़ील्ड के उपनाम हैं;nc-talkऔरncचैनल उपनाम के रूप में काम करते हैं):समतुल्य स्पष्ट फ़ील्ड:फ़ाइल-समर्थित सीक्रेट: - कॉन्फ़िगरेशन:
- Gateway पुनः आरंभ करें (या सेटअप पूरा करें)।
टिप्पणियाँ
- बॉट प्रत्यक्ष संदेश आरंभ नहीं कर सकते। उपयोगकर्ता को पहले बॉट को संदेश भेजना होगा।
- Webhook URL Nextcloud सर्वर से पहुँच योग्य होना चाहिए; जब Gateway किसी प्रॉक्सी के पीछे हो, तो
webhookPublicUrlसेट करें। Webhook अनुरोधों पर बॉट सीक्रेट से HMAC-SHA256 हस्ताक्षर किए जाते हैं; अमान्य हस्ताक्षर अस्वीकार किए जाते हैं और उनकी दर सीमित की जाती है। - बॉट API मीडिया अपलोड का समर्थन नहीं करता; आउटबाउंड मीडिया को
Attachment: <url>पंक्ति के रूप में जोड़ा जाता है। - Webhook पेलोड प्रत्यक्ष संदेशों और रूम के बीच अंतर नहीं करता; रूम-प्रकार की खोज सक्षम करने के लिए
apiUser+apiPasswordसेट करें (लगभग 5 मिनट तक कैश किया जाता है)। इनके बिना, प्रत्येक वार्तालाप को रूम माना जाता है। - आउटबाउंड अनुरोध SSRF सुरक्षा से होकर जाते हैं। विश्वसनीय निजी/आंतरिक नेटवर्क पर स्थित Nextcloud होस्ट के लिए
channels.nextcloud-talk.network.dangerouslyAllowPrivateNetwork: trueसे अनुमति दें। apiUser/apiPasswordऔरwebhookPublicUrlसेट होने पर,openclaw channels statusबॉट की जाँच करता है औरresponseसुविधा अनुपस्थित होने पर चेतावनी देता है।
अभिगम नियंत्रण (प्रत्यक्ष संदेश)
- डिफ़ॉल्ट:
channels.nextcloud-talk.dmPolicy = "pairing"। अज्ञात प्रेषकों को एक पेयरिंग कोड मिलता है। - इस माध्यम से अनुमोदित करें:
openclaw pairing list nextcloud-talkopenclaw pairing approve nextcloud-talk <CODE>
- सार्वजनिक प्रत्यक्ष संदेश:
channels.nextcloud-talk.dmPolicy="open"के साथchannels.nextcloud-talk.allowFrom=["*"]। allowFromकेवल Nextcloud उपयोगकर्ता ID से मेल खाता है (छोटे अक्षरों में); प्रदर्शन नामों को अनदेखा किया जाता है।
रूम (समूह)
- डिफ़ॉल्ट:
channels.nextcloud-talk.groupPolicy = "allowlist"(उल्लेख आवश्यक)। channels.nextcloud-talk.roomsसे रूम की अनुमति-सूची बनाएँ, जिसकी कुंजी रूम टोकन हो;"*"वाइल्डकार्ड डिफ़ॉल्ट सेट करता है:
- प्रति-रूम कुंजियाँ:
requireMention(डिफ़ॉल्ट true),enabled(false रूम को अक्षम करता है),allowFrom(प्रति-रूम प्रेषक अनुमति-सूची),tools(टूल के अनुमति/अस्वीकृति ओवरराइड),skills(लोड किए गए Skills सीमित करें),systemPrompt। - किसी भी रूम को अनुमति न देने के लिए, अनुमति-सूची खाली रखें या
channels.nextcloud-talk.groupPolicy="disabled"सेट करें।
क्षमताएँ
कॉन्फ़िगरेशन संदर्भ (Nextcloud Talk)
पूर्ण कॉन्फ़िगरेशन: कॉन्फ़िगरेशन प्रदाता विकल्प:channels.nextcloud-talk.enabled: चैनल स्टार्टअप सक्षम/अक्षम करें।channels.nextcloud-talk.baseUrl: Nextcloud इंस्टेंस URL।channels.nextcloud-talk.botSecret: बॉट साझा सीक्रेट (स्ट्रिंग या सीक्रेट संदर्भ)।channels.nextcloud-talk.botSecretFile: सामान्य फ़ाइल वाले सीक्रेट का पथ। प्रतीकात्मक लिंक अस्वीकार किए जाते हैं।channels.nextcloud-talk.apiUser: रूम की खोज (प्रत्यक्ष संदेश पहचान) और स्थिति जाँच के लिए API उपयोगकर्ता।channels.nextcloud-talk.apiPassword: रूम की खोज के लिए API/ऐप पासवर्ड।channels.nextcloud-talk.apiPasswordFile: API पासवर्ड फ़ाइल पथ।channels.nextcloud-talk.webhookPort: Webhook श्रोता पोर्ट (डिफ़ॉल्ट: 8788)।channels.nextcloud-talk.webhookHost: Webhook होस्ट (डिफ़ॉल्ट: 0.0.0.0)।channels.nextcloud-talk.webhookPath: Webhook पथ (डिफ़ॉल्ट: /nextcloud-talk-webhook)।channels.nextcloud-talk.webhookPublicUrl: बाहरी रूप से पहुँच योग्य Webhook URL।channels.nextcloud-talk.dmPolicy:pairing | allowlist | open | disabled(डिफ़ॉल्ट: पेयरिंग)।openके लिएallowFrom=["*"]आवश्यक है।channels.nextcloud-talk.allowFrom: प्रत्यक्ष संदेश अनुमति-सूची (उपयोगकर्ता ID)।channels.nextcloud-talk.groupPolicy:allowlist | open | disabled(डिफ़ॉल्ट: अनुमति-सूची)।channels.nextcloud-talk.groupAllowFrom: रूम प्रेषक अनुमति-सूची (उपयोगकर्ता ID); सेट न होने परallowFromका उपयोग करता है।channels.nextcloud-talk.rooms: प्रति-रूम सेटिंग और अनुमति-सूची (ऊपर देखें)।- स्थिर प्रेषक अभिगम समूहों को
allowFromऔरgroupAllowFromसेaccessGroup:<name>का उपयोग करके संदर्भित किया जा सकता है। channels.nextcloud-talk.historyLimit: समूह इतिहास सीमा (0 अक्षम करता है)।channels.nextcloud-talk.dmHistoryLimit: प्रत्यक्ष संदेश इतिहास सीमा (0 अक्षम करता है)।channels.nextcloud-talk.dms: उपयोगकर्ता ID द्वारा कुंजीबद्ध प्रति-प्रत्यक्ष-संदेश ओवरराइड (historyLimit)।channels.nextcloud-talk.textChunkLimit: आउटबाउंड टेक्स्ट खंड का अक्षर आकार (डिफ़ॉल्ट: 4000)।channels.nextcloud-talk.streaming.chunkMode: लंबाई के अनुसार खंड बनाने से पहले रिक्त पंक्तियों (अनुच्छेद सीमाओं) पर विभाजित करने के लिएlength(डिफ़ॉल्ट) याnewline।channels.nextcloud-talk.streaming.block.enabled: इस चैनल के लिए ब्लॉक स्ट्रीमिंग सक्षम या अक्षम करें।channels.nextcloud-talk.streaming.block.coalesce: ब्लॉक स्ट्रीमिंग संयोजन का समायोजन।channels.nextcloud-talk.responsePrefix: आउटबाउंड उत्तर उपसर्ग।channels.nextcloud-talk.markdown.tables: markdown तालिका रेंडरिंग मोड (off | bullets | code | block)।channels.nextcloud-talk.mediaMaxMb: इनबाउंड मीडिया सीमा (MB)।channels.nextcloud-talk.network.dangerouslyAllowPrivateNetwork: निजी/आंतरिक Nextcloud होस्ट को SSRF सुरक्षा से आगे जाने की अनुमति दें।channels.nextcloud-talk.accounts.<id>: प्रति-खाता ओवरराइड (समान कुंजियाँ);defaultAccountडिफ़ॉल्ट चुनता है। परिवेश चरNEXTCLOUD_TALK_BOT_SECRET/NEXTCLOUD_TALK_API_PASSWORDकेवल डिफ़ॉल्ट खाते पर लागू होते हैं।
संबंधित
- चैनलों का अवलोकन — सभी समर्थित चैनल
- पेयरिंग — प्रत्यक्ष संदेश प्रमाणीकरण और पेयरिंग प्रवाह
- समूह — समूह चैट का व्यवहार और उल्लेख की आवश्यकता
- चैनल रूटिंग — संदेशों के लिए सत्र रूटिंग
- सुरक्षा — अभिगम मॉडल और सुदृढ़ीकरण