Developer and self-hosted
Nextcloud Talk
Nextcloud Talk एक डाउनलोड करने योग्य चैनल plugin (@openclaw/nextcloud-talk) है, जो Talk webhook बॉट के माध्यम से OpenClaw को स्वयं होस्ट किए गए Nextcloud इंस्टेंस से जोड़ता है। प्रत्यक्ष संदेश, रूम, प्रतिक्रियाएँ और markdown संदेश समर्थित हैं; मीडिया URL के रूप में भेजा जाता है।
इंस्टॉल करें
openclaw plugins install @openclaw/nextcloud-talkवर्तमान आधिकारिक रिलीज़ टैग का अनुसरण करने के लिए केवल पैकेज विनिर्देश का उपयोग करें। सटीक संस्करण केवल तभी पिन करें, जब आपको पुनरुत्पाद्य इंस्टॉलेशन की आवश्यकता हो।
स्थानीय चेकआउट से (डेवलपमेंट कार्यप्रवाह):
openclaw plugins install ./path/to/local/nextcloud-talk-pluginइंस्टॉल करने के बाद Gateway पुनः आरंभ करें। विवरण: Plugins
त्वरित सेटअप (शुरुआती)
-
Plugin इंस्टॉल करें (ऊपर)।
-
अपने Nextcloud सर्वर पर एक बॉट बनाएँ:
bash ./occ talk:bot:install "OpenClaw" "<shared-secret>" "<webhook-url>" --feature webhook --feature response --feature reaction--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(केवल डिफ़ॉल्ट खाता)
CLI सेटअप (
--url/--tokenस्पष्ट फ़ील्ड के उपनाम हैं;nc-talkऔरncचैनल उपनाम के रूप में काम करते हैं):bash openclaw channels add --channel nextcloud-talk \ --url https://cloud.example.com \ --token "<shared-secret>"समतुल्य स्पष्ट फ़ील्ड:
bash openclaw channels add --channel nextcloud-talk \ --base-url https://cloud.example.com \ --secret "<shared-secret>"फ़ाइल-समर्थित सीक्रेट:
bash openclaw channels add --channel nextcloud-talk \ --base-url https://cloud.example.com \ --secret-file /path/to/nextcloud-talk-secret - कॉन्फ़िगरेशन:
-
Gateway पुनः आरंभ करें (या सेटअप पूरा करें)।
न्यूनतम कॉन्फ़िगरेशन:
{ channels: { "nextcloud-talk": { enabled: true, baseUrl: "https://cloud.example.com", botSecret: "shared-secret", dmPolicy: "pairing", }, },}टिप्पणियाँ
- बॉट प्रत्यक्ष संदेश आरंभ नहीं कर सकते। उपयोगकर्ता को पहले बॉट को संदेश भेजना होगा।
- 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से रूम की अनुमति-सूची बनाएँ, जिसकी कुंजी रूम टोकन हो;"*"वाइल्डकार्ड डिफ़ॉल्ट सेट करता है:
{ channels: { "nextcloud-talk": { rooms: { "room-token": { requireMention: true }, }, }, },}- प्रति-रूम कुंजियाँ:
requireMention(डिफ़ॉल्ट true),enabled(false रूम को अक्षम करता है),allowFrom(प्रति-रूम प्रेषक अनुमति-सूची),tools(टूल के अनुमति/अस्वीकृति ओवरराइड),skills(लोड किए गए Skills सीमित करें),systemPrompt। - किसी भी रूम को अनुमति न देने के लिए, अनुमति-सूची खाली रखें या
channels.nextcloud-talk.groupPolicy="disabled"सेट करें।
क्षमताएँ
| सुविधा | स्थिति |
|---|---|
| प्रत्यक्ष संदेश | समर्थित |
| रूम | समर्थित |
| थ्रेड | समर्थित नहीं |
| मीडिया | केवल URL |
| प्रतिक्रियाएँ | समर्थित |
| मूल कमांड | समर्थित नहीं |
कॉन्फ़िगरेशन संदर्भ (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केवल डिफ़ॉल्ट खाते पर लागू होते हैं।
संबंधित
- चैनलों का अवलोकन — सभी समर्थित चैनल
- पेयरिंग — प्रत्यक्ष संदेश प्रमाणीकरण और पेयरिंग प्रवाह
- समूह — समूह चैट का व्यवहार और उल्लेख की आवश्यकता
- चैनल रूटिंग — संदेशों के लिए सत्र रूटिंग
- सुरक्षा — अभिगम मॉडल और सुदृढ़ीकरण