في هذه الصفحة
في هذه الصفحة
Developer and self-hosted
Nextcloud Talk
Nextcloud Talk هو plugin قناة قابل للتنزيل (@openclaw/nextcloud-talk) يربط OpenClaw بمثيل Nextcloud مستضاف ذاتيًا عبر روبوت Webhook في Talk. تُدعم الرسائل المباشرة والغرف والتفاعلات ورسائل Markdown؛ وتُرسل الوسائط على هيئة عناوين URL.
التثبيت
استخدم محدد الحزمة المجرّد لمتابعة وسم الإصدار الرسمي الحالي. ثبّت إصدارًا محددًا بدقة فقط عندما تحتاج إلى تثبيت قابل لإعادة الإنتاج.
من نسخة محلية من المستودع (مسارات عمل التطوير):
أعد تشغيل Gateway بعد التثبيت. التفاصيل: Plugins
الإعداد السريع (للمبتدئين)
-
ثبّت plugin (أعلاه).
-
أنشئ روبوتًا على خادم Nextcloud:
bash احتفظ بـ
--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 الحقول الصريحة المكافئة:
bash سر مخزّن في ملف:
bash - الإعداد:
-
أعد تشغيل 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".
الإمكانات
| الميزة | الحالة |
|---|---|
| الرسائل المباشرة | مدعومة |
| الغرف | مدعومة |
| سلاسل المحادثات | غير مدعومة |
| الوسائط | عناوين URL فقط |
| التفاعلات | مدعومة |
| الأوامر الأصلية | غير مدعومة |
مرجع الإعداد (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على الحساب الافتراضي فقط.
ذو صلة
- نظرة عامة على القنوات — جميع القنوات المدعومة
- الإقران — مصادقة الرسائل المباشرة ومسار الإقران
- المجموعات — سلوك الدردشة الجماعية واشتراط الإشارة
- توجيه القنوات — توجيه جلسات الرسائل
- الأمان — نموذج الوصول والتقوية