WhatsApp (قناة الويب)
الحالة: جاهز للإنتاج عبر WhatsApp Web (Baileys). يمتلك الـ Gateway الجلسة (الجلسات) المرتبطة.
الإقران
السياسة الافتراضية للرسائل الخاصة من مرسلين غير معروفين هي الإقران.
استكشاف أخطاء القناة
تشخيصات متعددة القنوات وأدلة الإصلاح.
تهيئة Gateway
أنماط وأمثلة تهيئة القناة الكاملة.
الإعداد السريع
توصي OpenClaw بتشغيل WhatsApp على رقم منفصل كلما أمكن. (بيانات القناة وتدفق الإعداد مُحسّنان لهذا النمط، لكن إعدادات الرقم الشخصي مدعومة أيضًا.)
أنماط النشر
رقم مخصص (موصى به)
رقم مخصص (موصى به)
هذا هو النمط التشغيلي الأنظف:
- هوية WhatsApp منفصلة لـ OpenClaw
- حدود أوضح لقوائم سماح DM والتوجيه
- احتمال أقل لالتباس الدردشة مع الذات
الرقم الشخصي (حل احتياطي)
الرقم الشخصي (حل احتياطي)
يدعم الإعداد وضع الرقم الشخصي ويكتب إعدادًا أساسيًا مناسبًا للدردشة مع الذات:
dmPolicy: "allowlist"- تتضمن
allowFromرقمك الشخصي selfChatMode: true
allowFrom.نطاق قناة WhatsApp Web فقط
نطاق قناة WhatsApp Web فقط
قناة المراسلة تعتمد على WhatsApp Web (
Baileys) في بنية قنوات OpenClaw الحالية.لا توجد قناة Twilio WhatsApp منفصلة ضمن سجل القنوات المدمج.نموذج وقت التشغيل
- يمتلك الـ Gateway مقبس WhatsApp وحلقة إعادة الاتصال.
- يتطلب الإرسال الصادر مستمع WhatsApp نشطًا للحساب المستهدف.
- يتم تجاهل محادثات الحالة والبث (
@status,@broadcast). - تستخدم الدردشات المباشرة قواعد جلسة DM (
session.dmScope؛ الافتراضيmainيدمج DMs في الجلسة الرئيسية للوكيل). - جلسات المجموعات معزولة (
agent:<agentId>:whatsapp:group:<jid>).
التحكم في الوصول والتفعيل
- سياسة DM
- سياسة المجموعات + قوائم السماح
- الإشارات + /activation
يتحكم
channels.whatsapp.dmPolicy في الوصول إلى الدردشة المباشرة:pairing(افتراضي)allowlistopen(يتطلب أن تتضمنallowFromالقيمة"*")disabled
allowFrom أرقام بنمط E.164 (يتم تطبيعها داخليًا).تجاوز متعدد الحسابات: channels.whatsapp.accounts.<id>.dmPolicy (و allowFrom) يتقدمان على الإعدادات الافتراضية على مستوى القناة لذلك الحساب.تفاصيل السلوك في وقت التشغيل:- يتم حفظ عمليات الإقران في مخزن السماح للقناة ودمجها مع
allowFromالمُهيّأ - إذا لم يتم تكوين قائمة سماح، يُسمح بالرقم الذاتي المرتبط افتراضيًا
- لا يتم أبدًا إقران رسائل DM الصادرة
fromMeتلقائيًا
سلوك الرقم الشخصي والدردشة مع الذات
عندما يكون الرقم الذاتي المرتبط موجودًا أيضًا ضمنallowFrom، يتم تفعيل حمايات الدردشة مع الذات:
- تخطي إيصالات القراءة لدورات الدردشة مع الذات
- تجاهل سلوك التشغيل التلقائي لمعرّفات الإشارة الذي قد يؤدي إلى تنبيه نفسك
- إذا لم يتم تعيين
messages.responsePrefix، فإن ردود الدردشة مع الذات تستخدم افتراضيًا[{identity.name}]أو[openclaw]
توحيد الرسائل والسياق
الغلاف الوارد + سياق الرد
الغلاف الوارد + سياق الرد
يتم تغليف رسائل WhatsApp الواردة ضمن الغلاف الوارد المشترك.عند وجود رد مقتبس، يُلحَق السياق بهذا الشكل:كما يتم ملء حقول بيانات الرد الوصفية عند توفرها (
ReplyToId, ReplyToBody, ReplyToSender, مرسل JID/E.164).عناصر الوسائط النائبة واستخراج الموقع/جهة الاتصال
عناصر الوسائط النائبة واستخراج الموقع/جهة الاتصال
يتم توحيد الرسائل الواردة التي تحتوي على وسائط فقط باستخدام عناصر نائبة مثل:
<media:image><media:video><media:audio><media:document><media:sticker>
حقن سجل المجموعات المعلّق
حقن سجل المجموعات المعلّق
في المجموعات، يمكن تخزين الرسائل غير المعالجة مؤقتًا وحقنها كسياق عند تشغيل البوت أخيرًا.
- الحد الافتراضي:
50 - التهيئة:
channels.whatsapp.historyLimit - الاحتياطي:
messages.groupChat.historyLimit 0يعطّل الميزة
[Chat messages since your last reply - for context][Current message - respond to this]
إيصالات القراءة
إيصالات القراءة
إيصالات القراءة مفعّلة افتراضيًا لرسائل WhatsApp الواردة المقبولة.تعطيل عام:تجاوز لكل حساب:تتجاوز دورات الدردشة مع الذات إيصالات القراءة حتى عند تفعيلها عالميًا.
التسليم، التجزئة، والوسائط
تجزئة النص
تجزئة النص
- الحد الافتراضي للتجزئة:
channels.whatsapp.textChunkLimit = 4000 channels.whatsapp.chunkMode = "length" | "newline"- وضع
newlineيفضّل حدود الفقرات (الأسطر الفارغة)، ثم يعود إلى تجزئة آمنة حسب الطول
سلوك الوسائط الصادرة
سلوك الوسائط الصادرة
- يدعم الصور والفيديو والصوت (ملاحظة صوتية PTT) والمستندات
- يتم إعادة كتابة
audio/oggإلىaudio/ogg; codecs=opusللتوافق مع الملاحظات الصوتية - يتم دعم تشغيل GIF المتحرك عبر
gifPlayback: trueعند إرسال الفيديو - يتم تطبيق العنوان (Caption) على أول عنصر وسائط عند إرسال رد متعدد الوسائط
- يمكن أن يكون مصدر الوسائط HTTP(S) أو
file://أو مسارات محلية
حدود حجم الوسائط وسلوك الاحتياطي
حدود حجم الوسائط وسلوك الاحتياطي
- حد حفظ الوسائط الواردة:
channels.whatsapp.mediaMaxMb(الافتراضي50) - حد الوسائط الصادرة للردود التلقائية:
agents.defaults.mediaMaxMb(الافتراضي5MB) - يتم تحسين الصور تلقائيًا (تغيير الحجم/الجودة) لتناسب الحدود
- عند فشل إرسال الوسائط، يتم إرسال تحذير نصي بدلاً من إسقاط الرد بصمت
تفاعلات الإقرار
يدعم WhatsApp تفاعلات إقرار فورية عند استلام الرسائل الواردة عبرchannels.whatsapp.ackReaction.
- يتم الإرسال فور قبول الرسالة الواردة (قبل الرد)
- يتم تسجيل الإخفاقات دون منع تسليم الرد الطبيعي
- وضع المجموعة
mentionsيتفاعل عند الدورات التي يتم تشغيلها عبر الإشارة؛ تفعيل المجموعةalwaysيعمل كتجاوز لهذا الفحص - يستخدم WhatsApp الإعداد
channels.whatsapp.ackReaction(ولا يتم استخدامmessages.ackReactionالقديم هنا)
تعدد الحسابات وبيانات الاعتماد
اختيار الحساب والافتراضيات
اختيار الحساب والافتراضيات
- تأتي معرّفات الحسابات من
channels.whatsapp.accounts - اختيار الحساب الافتراضي:
defaultإن وُجد، وإلا أول معرّف حساب مُهيّأ (مرتّب) - يتم تطبيع معرّفات الحسابات داخليًا لأغراض البحث
مسارات بيانات الاعتماد والتوافق القديم
مسارات بيانات الاعتماد والتوافق القديم
- مسار المصادقة الحالي:
~/.openclaw/credentials/whatsapp/<accountId>/creds.json - ملف احتياطي:
creds.json.bak - يتم التعرف على المصادقة الافتراضية القديمة في
~/.openclaw/credentials/وترحيلها عند الحاجة
سلوك تسجيل الخروج
سلوك تسجيل الخروج
openclaw channels logout --channel whatsapp [--account <id>] يمسح حالة مصادقة WhatsApp لذلك الحساب.في أدلة المصادقة القديمة، يتم الاحتفاظ بـ oauth.json بينما تُحذف ملفات Baileys.الأدوات، الإجراءات، وكتابة التهيئة
- يدعم الوكيل أداة تفاعل WhatsApp (
react). - بوابات الإجراءات:
channels.whatsapp.actions.reactionschannels.whatsapp.actions.polls
- كتابة التهيئة التي تبدأها القناة مفعّلة افتراضيًا (يمكن التعطيل عبر
channels.whatsapp.configWrites=false).
استكشاف الأخطاء وإصلاحها
غير مرتبط (مطلوب QR)
غير مرتبط (مطلوب QR)
العَرَض: تُظهر حالة القناة أنها غير مرتبطة.الحل:
مرتبط لكن غير متصل / حلقة إعادة اتصال
مرتبط لكن غير متصل / حلقة إعادة اتصال
العَرَض: حساب مرتبط مع انقطاعات متكررة أو محاولات إعادة اتصال.الحل:عند الحاجة، أعد الربط باستخدام
channels login.لا يوجد مستمع نشط عند الإرسال
لا يوجد مستمع نشط عند الإرسال
تفشل عمليات الإرسال الصادر فورًا عند عدم وجود مستمع Gateway نشط للحساب المستهدف.تأكد من أن الـ Gateway يعمل وأن الحساب مرتبط.
يتم تجاهل رسائل المجموعات بشكل غير متوقع
يتم تجاهل رسائل المجموعات بشكل غير متوقع
تحقق بالترتيب التالي:
groupPolicygroupAllowFrom/allowFrom- إدخالات قائمة سماح
groups - تقييد الإشارة (
requireMention+ أنماط الإشارة)
تحذير بيئة Bun
تحذير بيئة Bun
يجب تشغيل بيئة WhatsApp في الـ Gateway باستخدام Node. يتم وضع علامة على Bun كغير متوافق للتشغيل المستقر لقنوات WhatsApp/Telegram.
مراجع التهيئة
المرجع الأساسي: حقول WhatsApp المهمة:- الوصول:
dmPolicy,allowFrom,groupPolicy,groupAllowFrom,groups - التسليم:
textChunkLimit,chunkMode,mediaMaxMb,sendReadReceipts,ackReaction - تعدد الحسابات:
accounts.<id>.enabled,accounts.<id>.authDir, تجاوزات على مستوى الحساب - العمليات:
configWrites,debounceMs,web.enabled,web.heartbeatSeconds,web.reconnect.* - سلوك الجلسة:
session.dmScope,historyLimit,dmHistoryLimit,dms.<id>.historyLimit