واتساب
الحالة: جاهز للإنتاج عبر واتساب ويب (Baileys). البوابة تمتلك جلسة/جلسات الارتباط.
الاقتران
سياسة الرسائل المباشرة الافتراضية هي الاقتران للمرسلين غير المعروفين.
استكشاف أخطاء القناة
تشخيصات عبر القنوات وسيناريوهات الإصلاح.
تكوين البوابة
أنماط وأمثلة التكوين الكاملة للقناة.
الإعداد السريع
الخطوة 1: تكوين سياسة الوصول إلى واتساب
{
channels: {
whatsapp: {
dmPolicy: "pairing",
allowFrom: ["+15551234567"],
groupPolicy: "allowlist",
groupAllowFrom: ["+15551234567"],
},
},
}
الخطوة 2: ربط واتساب (QR)
openclaw channels login --channel whatsapp
لحساب محدد:
openclaw channels login --channel whatsapp --account work
الخطوة 3: تشغيل البوابة
openclaw gateway
الخطوة 4: الموافقة على طلب الاقتران الأول (إذا كنت تستخدم وضع الاقتران)
openclaw pairing list whatsapp
openclaw pairing approve whatsapp <CODE>
طلبات الاقتران تنتهي صلاحيتها بعد ساعة واحدة. الطلبات المعلقة محدودة بـ 3 لكل قناة.
ℹ️ يوصي OpenClaw بتشغيل واتساب على رقم منفصل عندما يكون ذلك ممكنًا. (بيانات وصفية القناة وتدفق الإعداد مُحسّنان لهذا الإعداد، لكن إعدادات الرقم الشخصي مدعومة أيضًا.)
أنماط النشر
نموذج التشغيل
- البوابة تمتلك مقبس واتساب وحلقة إعادة الاتصال.
- عمليات الإرسال الصادرة تتطلب مستمع واتساب نشط للحساب المستهدف.
- محادثات الحالة والبث تُتجاهل (
@status,@broadcast). - محادثات الدردشة المباشرة تستخدم قواعد جلسة الرسائل المباشرة (
session.dmScope؛ الافتراضيmainيدمج الرسائل المباشرة في الجلسة الرئيسية للوكيل). - جلسات المجموعة معزولة (
agent:<agentId>:whatsapp:group:<jid>).
التحكم في الوصول والتشغيل
channels.whatsapp.dmPolicy تتحكم في الوصول إلى محادثات الدردشة المباشرة:
pairing(الافتراضي)allowlistopen(يتطلب تضمين"*"فيallowFrom)disabled
allowFrom تقبل أرقامًا بتنسيق E.164 (يتم تطبيعها داخليًا).تجاوز متعدد الحسابات: channels.whatsapp.accounts.<id>.dmPolicy (و allowFrom) تأخذ الأولوية على الإعدادات الافتراضية على مستوى القناة لذلك الحساب.تفاصيل سلوك التشغيل:
- عمليات الاقتران تُحفظ في مخزن السماح للقناة وتُدمج مع
allowFromالمُكون - إذا لم يتم تكوين قائمة سماح، فإن رقم الذات المرتبط يُسمح به افتراضيًا
- الرسائل المباشرة الصادرة
fromMeلا يتم اقترانها تلقائيًا أبدًا
سلوك الرقم الشخصي والدردشة الذاتية
عندما يكون رقم الذات المرتبط موجودًا أيضًا في allowFrom، يتم تفعيل ضمانات الدردشة الذاتية في واتساب:
- تخطي إيصالات القراءة لدورات الدردشة الذاتية
- تجاهل سلوب التشغيل التلقائي لـ JID الإشارة الذي قد يسبب إشعارك بنفسك
- إذا لم يتم تعيين
messages.responsePrefix، فإن ردود الدردشة الذاتية الافتراضية هي[{identity.name}]أو[openclaw]
تطبيع الرسالة والسياق
التسليم والتقسيم والوسائط
تفاعلات الإقرار
يدعم واتساب تفاعلات الإقرار الفورية عند استلام الوارد عبر channels.whatsapp.ackReaction.
{
channels: {
whatsapp: {
ackReaction: {
emoji: "👀",
direct: true,
group: "mentions", // always | mentions | never
},
},
},
}
ملاحظات السلوك:
- تُرسل فورًا بعد قبول الوارد (قبل الرد)
- يتم تسجيل حالات الفشل لكنها لا تمنع تسليم الرد العادي
- وضع المجموعة
mentionsيتفاعل على الدورات التي تم تشغيلها بالإشارة؛ تشغيل المجموعةalwaysيعمل كتجاوز لهذا الفحص - يستخدم واتساب
channels.whatsapp.ackReaction(القديمmessages.ackReactionلا يُستخدم هنا)
الحسابات المتعددة والمعلومات الاعتمادية
الأدوات والإجراءات وكتابة التكوين
- دعم أداة الوكيل يتضمن إجراء تفاعل واتساب (
react). - بوابات الإجراءات:
channels.whatsapp.actions.reactionschannels.whatsapp.actions.polls
- كتابة التكوين التي تبدأها القناة مفعلة افتراضيًا (تعطيل عبر
channels.whatsapp.configWrites=false).
استكشاف الأخطاء وإصلاحها
إشارات مرجع التكوين
المرجع الأساسي:
حقول واتساب عالية الأهمية:
- الوصول:
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