منصات المراسلة

واتساب

الحالة: جاهز للإنتاج عبر واتساب ويب (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 (الافتراضي)
  • allowlist
  • open (يتطلب تضمين "*" في allowFrom)
  • disabled

allowFrom تقبل أرقامًا بتنسيق E.164 (يتم تطبيعها داخليًا).تجاوز متعدد الحسابات: channels.whatsapp.accounts.<id>.dmPolicyallowFrom) تأخذ الأولوية على الإعدادات الافتراضية على مستوى القناة لذلك الحساب.تفاصيل سلوك التشغيل:

  • عمليات الاقتران تُحفظ في مخزن السماح للقناة وتُدمج مع 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.reactions
    • channels.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

ذات صلة

TwitchZalo