CLI commands
القنوات
openclaw channels
إدارة حسابات قنوات الدردشة وحالة تشغيلها على Gateway.
وثائق ذات صلة:
الأوامر الشائعة
openclaw channels listopenclaw channels list --allopenclaw channels statusopenclaw channels capabilitiesopenclaw channels capabilities --channel discord --target channel:123openclaw channels resolve --channel slack "#general" "@jane"openclaw channels logs --channel allيعرض channels list قنوات الدردشة فقط: الحسابات المُعدّة افتراضيًا، مع وسوم الحالة installed وconfigured وenabled لكل حساب (--json لإخراج قابل للمعالجة آليًا). مرّر --all لإظهار القنوات المضمّنة التي لم يُعَدّ لها حساب بعد، وكذلك قنوات الكتالوج القابلة للتثبيت التي لم تُثبّت على القرص بعد. توجد مصادقة المزوّد واستخدام النماذج في مواضع أخرى: استخدم openclaw models auth list لملفات تعريف مصادقة المزوّد، وopenclaw status أو openclaw models list للاستخدام والحصة.
الحالة / الإمكانات / الحل / السجلات
channels status:--channel <name>، و--probe، و--timeout <ms>(القيمة الافتراضية10000)، و--jsonchannels capabilities:--channel <name>، و--account <id>(يتطلب--channel)، و--target <dest>(يتطلب--channel)، و--timeout <ms>(القيمة الافتراضية10000، وبحد أقصى30000)، و--jsonchannels resolve <entries...>:--channel <name>، و--account <id>، و--kind <auto|user|group>(القيمة الافتراضيةauto)، و--jsonchannels logs:--channel <name|all>(القيمة الافتراضيةall)، و--lines <n>(القيمة الافتراضية200)، و--json
يمثّل channels status --probe مسار الفحص المباشر: فعندما يكون Gateway متاحًا، يشغّل فحوصات
probeAccount وفحوصات auditAccount الاختيارية لكل حساب، لذلك قد يتضمن الإخراج حالة
النقل ونتائج الفحص مثل works أو probe failed أو audit ok أو audit failed.
إذا تعذر الوصول إلى Gateway، يعود channels status إلى ملخصات مستندة إلى الإعداد فقط
بدلًا من إخراج الفحص المباشر.
لا تستخدم openclaw sessions أو sessions.list في Gateway أو أداة الوكيل
sessions_list كمؤشر على سلامة مقبس القناة. تعرض هذه الأسطح
صفوف المحادثات المخزنة، لا حالة تشغيل المزوّد. بعد إعادة تشغيل مزوّد Discord،
قد يكون الحساب المتصل والساكن سليمًا رغم عدم ظهور أي صف جلسة Discord
حتى حدث المحادثة الوارد أو الصادر التالي.
إضافة الحسابات / إزالتها
openclaw channels add --channel telegram --token <bot-token>openclaw channels add --channel nostr --private-key "$NOSTR_PRIVATE_KEY"openclaw channels remove --channel telegram --deleteلا يعمل channels remove إلا على Plugins القنوات المثبتة أو المُعدّة. استخدم channels add أولًا لقنوات الكتالوج القابلة للتثبيت. من دون --delete، يطلب تعطيل الحساب ويحتفظ بإعداده؛ أما --delete فيزيل إدخالات الإعداد من دون مطالبة.
وبالنسبة إلى Plugins القنوات المدعومة بوقت التشغيل، يطلب channels remove أيضًا من Gateway قيد التشغيل إيقاف الحساب المحدد قبل تحديث الإعداد، بحيث لا يؤدي تعطيل حساب أو حذفه إلى إبقاء المستمع القديم نشطًا حتى إعادة التشغيل.
خيارات الإضافة غير التفاعلية المشتركة بين القنوات: --account <id>، و--name <name>، و--token، و--token-file، و--bot-token، و--app-token، و--secret، و--secret-file، و--password، و--cli-path، و--url، و--base-url، و--http-url، و--auth-dir، و--use-env (مصادقة مدعومة بمتغيرات البيئة، للحساب الافتراضي فقط، حيثما تكون مدعومة). تشمل الخيارات الخاصة بالقنوات ما يلي:
| القناة | الخيارات |
|---|---|
| Google Chat | --webhook-path، و--webhook-url، و--audience-type، و--audience |
| iMessage | --cli-path، و--db-path، و--service، و--region |
| Matrix | --homeserver، و--user-id، و--access-token، و--password، و--device-name، و--initial-sync-limit |
| Nostr | --private-key، و--relay-urls |
| Signal | --signal-number، و--cli-path، و--http-url، و--http-host، و--http-port |
| Tlon | --ship، و--url، و--code، و--group-channels، و--dm-allowlist، و--auto-discover-channels |
--auth-dir |
إذا احتاج Plugin قناة إلى التثبيت أثناء أمر إضافة يعتمد على الخيارات، يستخدم OpenClaw مصدر التثبيت الافتراضي للقناة من دون فتح مطالبة تثبيت Plugin التفاعلية.
عند تشغيل openclaw channels add من دون خيارات، يمكن للمعالج التفاعلي طلب ما يلي:
- معرّفات الحسابات لكل قناة محددة
- أسماء عرض اختيارية لتلك الحسابات
هل تريد توجيه حسابات القنوات هذه إلى الوكلاء الآن؟
إذا أكدت الربط الآن، يسأل المعالج عن الوكيل الذي يجب أن يمتلك كل حساب قناة مُعَدّ، ثم يكتب ارتباطات توجيه محددة النطاق بالحساب.
يمكنك أيضًا إدارة قواعد التوجيه نفسها لاحقًا باستخدام openclaw agents bindings وopenclaw agents bind وopenclaw agents unbind (راجع الوكلاء).
عند إضافة حساب غير افتراضي إلى قناة ما زالت تستخدم إعدادات المستوى الأعلى الخاصة بحساب واحد، يرفع OpenClaw قيم المستوى الأعلى تلك إلى خريطة حسابات القناة قبل كتابة الحساب الجديد. تعيد عملية الرفع استخدام حساب مسمّى موجود عندما يكون للقناة حساب واحد بالضبط، أو عندما يشير defaultAccount إلى حساب؛ وإلا فتُخزّن القيم في channels.<channel>.accounts.default.
يظل سلوك التوجيه متسقًا:
- تستمر الارتباطات الحالية الخاصة بالقناة فقط (من دون
accountId) في مطابقة الحساب الافتراضي. - لا ينشئ
channels addالارتباطات أو يعيد كتابتها تلقائيًا في الوضع غير التفاعلي. - يمكن للإعداد التفاعلي إضافة ارتباطات محددة النطاق بالحساب اختياريًا.
إذا كان إعدادك في حالة مختلطة بالفعل (توجد حسابات مسمّاة وما زالت قيم الحساب الواحد في المستوى الأعلى معيّنة)، فشغّل openclaw doctor --fix لنقل القيم محددة النطاق بالحساب إلى الحساب المرفوع المختار لتلك القناة.
تسجيل الدخول والخروج (تفاعلي)
openclaw channels login --channel whatsappopenclaw channels logout --channel whatsapp- يدعم
channels loginالخيارين--account <id>و--verbose؛ ويدعمchannels logoutالخيار--account <id>. - يمكن لـ
channels loginوlogoutاستنتاج القناة عندما تدعم قناة مُعدّة واحدة فقط هذا الإجراء؛ وعند وجود عدة قنوات، مرّر--channel. - يفضّل
channels logoutمسار Gateway المباشر عندما يكون متاحًا، بحيث يوقف تسجيل الخروج أي مستمع نشط قبل مسح حالة مصادقة القناة. إذا تعذر الوصول إلى Gateway محلي، فإنه يعود إلى تنظيف المصادقة محليًا؛ أما معgateway.mode: "remote"فيؤدي خطأ Gateway إلى فشل الأمر بدلًا من ذلك. - بعد نجاح تسجيل الدخول، تطلب CLI من Gateway محلي متاح بدء الحساب؛ وفي الوضع البعيد تحفظ المصادقة محليًا وتوضح أن وقت التشغيل البعيد لم يُعَد تشغيله.
- شغّل
channels loginمن طرفية على مضيف Gateway. يحظرexecالخاص بالوكيل تدفق تسجيل الدخول التفاعلي هذا؛ ويجب استخدام أدوات تسجيل دخول الوكيل الأصلية للقناة، مثلwhatsapp_login، من الدردشة عند توفرها.
استكشاف الأخطاء وإصلاحها
- شغّل
openclaw status --deepلإجراء فحص واسع. - استخدم
openclaw doctorللإصلاحات الموجّهة. - يعود
openclaw channels statusإلى ملخصات مستندة إلى الإعداد فقط عندما يتعذر الوصول إلى Gateway. إذا كانت بيانات اعتماد قناة مدعومة مُعدّة عبر SecretRef لكنها غير متاحة في مسار الأمر الحالي، فسيبلّغ عن ذلك الحساب باعتباره مُعدًا مع ملاحظات تفيد بتدهور الحالة بدلًا من إظهاره على أنه غير مُعَدّ.
فحص الإمكانات
اجلب تلميحات إمكانات المزوّد (الأغراض/النطاقات حيثما توفرت) بالإضافة إلى دعم الميزات الثابت:
openclaw channels capabilitiesopenclaw channels capabilities --channel discord --target channel:123ملاحظات:
- الخيار
--channelاختياري؛ احذفه لسرد كل قناة (بما فيها القنوات التي توفرها Plugins). - لا يكون
--accountصالحًا إلا مع--channel. - يقبل
--targetالقيمةchannel:<id>أو معرّف قناة رقميًا خامًا، ولا ينطبق إلا على Discord. بالنسبة إلى قنوات Discord الصوتية، يشير فحص الأذونات إلى غيابViewChannelوConnectوSpeakوSendMessagesوReadMessageHistory. - تعتمد الفحوصات على المزوّد: هوية روبوت Discord وأغراضه، إضافة إلى أذونات القناة الاختيارية؛ وروبوت Slack ونطاقات المستخدم؛ وخيارات روبوت Telegram وWebhook؛ وإصدار برنامج Signal الخدمي؛ ورمز تطبيق Microsoft Teams المميز وأدوار/نطاقات Graph (مع تعليقات توضيحية حيثما كانت معروفة). تعرض القنوات التي لا تتوفر لها فحوصات
Probe: unavailable.
تحويل الأسماء إلى معرّفات
حوّل أسماء القنوات/المستخدمين إلى معرّفات باستخدام دليل المزوّد:
openclaw channels resolve --channel slack "#general" "@jane"openclaw channels resolve --channel discord "My Server/#support" "@someone"openclaw channels resolve --channel matrix "Project Room"ملاحظات:
- استخدم
--kind user|group|autoلفرض نوع الهدف. - تفضّل عملية الحل المطابقات النشطة عندما تشترك عدة إدخالات في الاسم نفسه.
channels resolveللقراءة فقط. إذا كان حساب محدد مُعدًا عبر SecretRef لكن بيانات الاعتماد تلك غير متاحة في مسار الأمر الحالي، يعيد الأمر نتائج غير محلولة متدهورة مع ملاحظات بدلًا من إيقاف التشغيل بالكامل.- لا يثبّت
channels resolvePlugins القنوات. استخدمchannels add --channel <name>قبل حل الأسماء لقناة كتالوج قابلة للتثبيت.