@openclaw/nextcloud-talk) يربط OpenClaw بمثيل Nextcloud مستضاف ذاتيًا عبر روبوت Webhook في Talk. تُدعم الرسائل المباشرة والغرف والتفاعلات ورسائل 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 (أو أكمل الإعداد).
ملاحظات
- لا يمكن للروبوتات بدء رسائل مباشرة. يجب أن يراسل المستخدم الروبوت أولًا.
- يجب أن يكون عنوان URL الخاص بـ Webhook قابلًا للوصول من خادم Nextcloud؛ اضبط
webhookPublicUrlعندما يكون Gateway خلف وكيل. تُوقّع طلبات 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 فقط (بأحرف صغيرة)؛ وتُتجاهل أسماء العرض.
الغرف (المجموعات)
- الافتراضي:
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: عنوان URL لمثيل Nextcloud.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: عنوان URL لـ Webhook يمكن الوصول إليه خارجيًا.channels.nextcloud-talk.dmPolicy:pairing | allowlist | open | disabled(الافتراضي: الإقران). يتطلبopenضبطallowFrom=["*"].channels.nextcloud-talk.allowFrom: قائمة السماح بالرسائل المباشرة (معرّفات المستخدمين).channels.nextcloud-talk.groupPolicy:allowlist | open | disabled(الافتراضي: قائمة السماح).channels.nextcloud-talk.groupAllowFrom: قائمة السماح بمرسلي الغرف (معرّفات المستخدمين)؛ وتعود إلىallowFromعند عدم ضبطها.channels.nextcloud-talk.rooms: إعدادات كل غرفة وقائمة السماح (راجع أعلاه).- يمكن الإشارة إلى مجموعات وصول المرسلين الثابتة من
allowFromوgroupAllowFromباستخدامaccessGroup:<name>. channels.nextcloud-talk.historyLimit: حد سجل المجموعة (تعطّله القيمة 0).channels.nextcloud-talk.dmHistoryLimit: حد سجل الرسائل المباشرة (تعطّله القيمة 0).channels.nextcloud-talk.dms: تجاوزات لكل رسالة مباشرة مفهرسة بمعرّف المستخدم (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على الحساب الافتراضي فقط.
ذو صلة
- نظرة عامة على القنوات — جميع القنوات المدعومة
- الإقران — مصادقة الرسائل المباشرة ومسار الإقران
- المجموعات — سلوك الدردشة الجماعية واشتراط الإشارة
- توجيه القنوات — توجيه جلسات الرسائل
- الأمان — نموذج الوصول والتقوية