الإقران
سياسة الرسائل المباشرة الافتراضية لـ SMS هي الإقران.
أمان Gateway
راجع تعرّض Webhook للإنترنت وضوابط وصول المرسلين.
استكشاف أخطاء القنوات وإصلاحها
تشخيصات عبر القنوات وخطط إصلاح.
قبل أن تبدأ
تحتاج إلى:- تثبيت Plugin SMS الرسمي باستخدام
openclaw plugins install @openclaw/sms. - حساب Twilio مع رقم هاتف يدعم SMS، أو Twilio Messaging Service.
- Account SID و Auth Token من Twilio.
- عنوان URL عام عبر HTTPS يصل إلى OpenClaw Gateway.
- اختيار سياسة مرسل:
pairingللاستخدام الخاص، أوallowlistلأرقام الهواتف الموافق عليها مسبقًا، أوopenفقط للوصول العام المقصود عبر SMS.
الإعداد السريع
أنشئ مرسل Twilio أو اختر واحدًا
في Twilio، افتح Phone Numbers > Manage > Active numbers واختر رقمًا يدعم SMS. احفظ:
- Account SID، مثلًا
ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - Auth Token
- رقم هاتف المرسل، مثلًا
+15551234567
MGxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.وجّه Twilio إلى Webhook الخاص بـ Gateway
في إعدادات رقم هاتف Twilio، افتح Messaging واضبط A message comes in على:استخدم HTTP
POST. المسار المحلي الافتراضي هو /webhooks/sms؛ غيّر channels.sms.webhookPath إذا كنت تحتاج إلى مسار مختلف.اكشف مسار Webhook الدقيق لـ SMS
يجب أن يوجّه عنوان URL العام لديك مسار SMS إلى عملية Gateway. إذا كنت تستخدم Tailscale Funnel للاختبار المحلي، فاكشف يستخدم Voice Call و SMS مسارات Webhook منفصلة. إذا كان رقم Twilio نفسه يتعامل مع كليهما، فأبقِ كلا المسارين مضبوطين في Twilio وفي النفق لديك.
/webhooks/sms صراحةً:أمثلة التهيئة
ملف التهيئة
استخدم إعداد ملف التهيئة عندما تريد أن ينتقل تعريف القناة مع تهيئة Gateway:متغيرات البيئة
استخدم إعداد env لعمليات النشر ذات الحساب الواحد عندما تأتي الأسرار من بيئة المضيف:TWILIO_SMS_FROM كاسم بديل لـ TWILIO_PHONE_NUMBER. استخدم TWILIO_MESSAGING_SERVICE_SID بدلًا من مرسل رقم الهاتف عندما ينبغي أن يختار Twilio المرسل من Messaging Service.
رمز مصادقة SecretRef
يمكن أن يكونauthToken من نوع SecretRef. استخدم هذا عندما ينبغي أن يحل Gateway قيمة Twilio Auth Token من بيئة تشغيل أسرار OpenClaw بدلًا من تخزين تهيئة نصية صريحة:
رقم خاص بقائمة سماح فقط
استخدمallowlist عندما ينبغي أن تتمكن أرقام الهواتف المعروفة فقط من التحدث إلى الوكيل:
مرسل Messaging Service
استخدمmessagingServiceSid بدلًا من fromNumber عندما ينبغي أن يختار Twilio المرسل عبر Messaging Service:
fromNumber و messagingServiceSid موجودين بعد حل التهيئة و env، فسيُستخدم fromNumber.
الهدف الصادر الافتراضي
اضبطdefaultTo عندما ينبغي أن يكون للأتمتة أو التسليم الذي يبدأه الوكيل وجهة افتراضية إذا أغفل مسار الإرسال هدفًا صريحًا:
التحكم في الوصول
يتحكمchannels.sms.dmPolicy في الوصول المباشر عبر SMS:
pairing(افتراضي)allowlist(يتطلب مرسلًا واحدًا على الأقل فيallowFrom)open(يتطلب أن يتضمنallowFromالقيمة"*")disabled
allowFrom أرقام هواتف بصيغة E.164 مثل +15551234567. تُقبل بادئات sms: وتُطبّع. لمساعد خاص، فضّل dmPolicy: "allowlist" مع أرقام هواتف صريحة.
إرسال SMS
تستخدم أهداف SMS الصادرة بادئة الخدمةsms: مع تحديد قناة SMS:
twilio-sms:+15551234567 هذه القناة دون الاستحواذ على بادئة الخدمة الحالية sms: المملوكة للقناة والمستخدمة بواسطة iMessage.
--target صراحةً. defaultTo مخصص لمسارات الأتمتة والتسليم التي يبدأها الوكيل حيث يمكن حل الهدف من تهيئة القناة.
تعود ردود الوكيل من محادثات SMS الواردة تلقائيًا إلى المرسل عبر مرسل Twilio المضبوط.
مخرجات SMS نص عادي. يزيل OpenClaw تنسيق markdown، ويسطّح كتل التعليمات البرمجية المسيّجة، ويحافظ على الروابط القابلة للقراءة، ويقسّم الردود الطويلة قبل إرسالها عبر Twilio.
التحقق من الإعداد
بعد بدء Gateway:- تأكد من أن سجل Gateway يعرض مسار Webhook الخاص بـ SMS.
- شغّل اختبارًا من جانب Twilio:
- أرسل SMS إلى رقم Twilio من هاتفك.
- شغّل
openclaw pairing list sms. - وافق على رمز الإقران باستخدام
openclaw pairing approve sms <CODE>. - أرسل SMS أخرى وتأكد من أن الوكيل يرد.
اختبار شامل من macOS iMessage/SMS
على Mac يمكنه إرسال SMS عبر شركة الاتصالات من خلال Messages، يمكنك استخدامimsg لتشغيل جانب المرسل دون لمس هاتفك:
أمان Webhook
افتراضيًا، يتحقق OpenClaw منX-Twilio-Signature باستخدام publicWebhookUrl و authToken. أبقِ publicWebhookUrl مطابقًا حرفيًا لعنوان URL المضبوط في Twilio، بما في ذلك المخطط والمضيف والمسار وسلسلة الاستعلام.
لاختبار النفق المحلي فقط، يمكنك ضبط:
تهيئة متعددة الحسابات
استخدمaccounts عندما تدير أكثر من رقم Twilio واحد:
webhookPath مميزًا.
استكشاف الأخطاء وإصلاحها
يُرجع Twilio 403 أو يرفض OpenClaw الـ Webhook
تحقق من أنpublicWebhookUrl يطابق تمامًا عنوان URL المضبوط في Twilio، بما في ذلك المخطط والمضيف والمسار وسلسلة الاستعلام. يوقّع Twilio سلسلة عنوان URL العامة، لذلك يمكن أن تؤدي عمليات إعادة كتابة الوكيل وأسماء المضيف البديلة إلى كسر التحقق من التوقيع.
لا يظهر طلب إقران
تحقق من عنوان URL وطريقة Webhook في Messaging لرقم Twilio. يجب أن يشير إلى عنوان URL الخاص بـ Webhook لـ SMS وأن يستخدمPOST. تأكد أيضًا من أن Gateway قابل للوصول من الإنترنت العام أو عبر النفق لديك.
إذا أظهر سجل رسائل Twilio الخطأ 11200، فهذا يعني أن Twilio قبل SMS الواردة لكنه لم يتمكن من الوصول إلى Webhook لديك. تحقق مما يلي:
- يشير Messaging > A message comes in في Twilio إلى
publicWebhookUrl. - الطريقة هي
POST. - يكشف النفق أو الوكيل العكسي
webhookPathالدقيق؛ بالنسبة إلى Tailscale Funnel، شغّلtailscale funnel statusوتأكد من أن/webhooks/smsمدرج. - يستخدم
publicWebhookUrlالمخطط والمضيف والمسار وسلسلة الاستعلام نفسها التي يرسلها Twilio، بحيث يمكن للتحقق من التوقيع إعادة إنتاج عنوان URL الموقّع.
تفشل عمليات الإرسال الصادرة
تأكد من حلaccountSid و authToken وإما fromNumber أو messagingServiceSid. إذا كنت تستخدم حساب Twilio تجريبيًا، فقد يلزم التحقق من رقم الوجهة في Twilio قبل إرسال SMS الصادرة.
تصل الرسائل لكن الوكيل لا يجيب
تحقق منdmPolicy وallowFrom. مع سياسة pairing الافتراضية، يجب اعتماد المرسل قبل معالجة دورات الوكيل العادية.