الرسائل الغنية والموافقات في Telegram مع OpenClaw
HTML افتراضيًا، وتفعيل كتل Bot API 10.3، ونطاقات الأزرار المضمنة الخمسة، وكتلة الأزرار وأزرار Mini App، وإجراءات الرسائل وحواجز تفعيلها، وقوائم الرموز التعبيرية، وموافقات التنفيذ من داخل Telegram
النص ليس إلا بداية ما يستطيع بوت Telegram إرساله: كتل منسقة، ولوحة مفاتيح تحت رسالة، وزر لتشغيل Mini App، وتفاعل على رسالة شخص آخر، ومطالبة موافقة بزرين. يتيح OpenClaw كلًا منها عبر مجموعة صغيرة من مفاتيح الإعداد وإجراءات الرسائل، معظمها معطل حتى تفعله. إليك عقد التنسيق، ونطاقات الأزرار، والإجراءات وحواجز تفعيلها، وكيف تصل موافقة التنفيذ إلى الموافق داخل Telegram.
التنسيق
- يستخدم النص الصادر افتراضيًا HTML القياسي في Telegram، الذي يظهر مقروءًا في كل العملاء الحاليين، مع الخط العريض والمائل والروابط والشيفرة والنصوص المخفية والاقتباسات، وتحتفظ كتل الشيفرة المسيجة بمحتواها الحرفي ومسافاتها، بما في ذلك أمثلة الأسوار داخل الكتلة؛ ولا تستخدم الكتل الحصرية للرسائل الغنية في Bot API 10.3، أي الجداول الأصلية والتفاصيل والوسائط الغنية والمعادلات، ما لم تفعلها صراحة.
- عند تفعيل علامة الرسائل الغنية، يبلغ الوكيل بأن الرسائل الغنية متاحة لهذا البوت أو الحساب، مع عقد الكتابة المدعوم بلغة Markdown وجزر HTML، ويعرض Markdown عبر تمثيل Markdown الوسيط في OpenClaw ككتل غنية محددة الأنواع: العناوين والجداول والتفاصيل وقوائم التحقق والوسائط الغنية والمعادلات والخرائط ولوحات الصور المجمعة، بينما تظل تعليقات الوسائط تستخدم تعليقات HTML بحد أقصى 1024 حرفًا؛ ويحافظ نص المتن الغني العادي على المسافات وفواصل الأسطر المحللة، وتفك ترميزات الكيانات مرة واحدة، وتبقى الوسوم المهربة نصًا مرئيًا، ويبقى HTML غير المدعوم مرئيًا دون أن يلغي Markdown الموجود داخله، وينقسم النص الغني الطويل تلقائيًا وفق حدود Telegram، وترجع الجداول التي تتجاوز حد 20 عمودًا إلى كتلة شيفرة.
- العلامة معطلة افتراضيًا حفاظًا على التوافق مع العملاء، لأن بعض عملاء Desktop وWeb وAndroid الحاليين وعملاء الجهات الخارجية يعرض الرسائل الغنية المقبولة على أنها غير مدعومة؛ أبقها معطلة ما لم يكن كل عميل يستخدم مع البوت قادرًا على عرضها، ويبين أمر status ما إذا كانت الرسائل الغنية مفعلة في الجلسة الحالية أم معطلة.
- معاينات الروابط مفعلة افتراضيًا، وضبط مفتاح معاينة الروابط على false يعطل الاكتشاف التلقائي للكيانات في النص الغني؛ وإبعاد نص النموذج عن رموز Markdown الغني في Telegram هو أيضًا سبب عدم تحليل نطاق عملة مثل 400 إلى 600 ألف دولار على أنه معادلة.
لا تعمل أزرار Mini App إلا في الدردشات الخاصة بين المستخدم والبوت.
الأزرار المضمنة
لقدرة الأزرار المضمنة خمسة نطاقات، off وdm وgroup وall وallowlist، والقيمة الافتراضية allowlist، وتضبط على مستوى القناة ويمكن تجاوزها لكل حساب؛ وصيغة المصفوفة القديمة تقابل all، والحساب الذي يحمل مصفوفة قدرات فارغة يرث قدرات القناة، وقيمة off الصريحة تعطل الأزرار. تستخدم أداة ask-user عناصر التحكم الأصلية هذه لسؤال واحد باختيار وحيد، بصف لكل خيار، مع خيار Other يفتح حقل الرد في Telegram. ويحمل إجراء الرسالة عرضًا يتضمن كتلة أزرار، لكل زر تسمية وإجراء ونمط اختياري مثل success أو danger؛ يعيد إجراء callback قيمته، ويفتح إجراء web-app عنوان URL لتطبيق Mini App، وهذا لا يعمل إلا في الدردشات الخاصة بين المستخدم والبوت. وتمرر قيم callback التي لا يطالب بها معالج تفاعلي مسجل لمكون إضافي إلى الوكيل نصًا مسبوقًا بعبارة callback data. ومع الاستقبال الدائم يرسل إقرار callback مباشرة بعد تخزين التحديث، دون انتظار المعالجات السابقة في مسار تلك الدردشة، فيزيل Telegram مؤشر التحميل مبكرًا بينما يظل إجراء الزر خاضعًا للتفويض العادي والمعالجة المرتبة.
الإجراءات والموافقات
- الإجراءات هي send-message مع هدف ومحتوى، واختياريًا عنوان URL للوسائط ومعرّف الرد ومعرّف سلسلة المحادثة، وreact مع دردشة ورسالة ورمز تعبيري، وemoji-list مع دردشة وحد اختياريين، وdelete-message، وedit-message مع محتوى أو تعليق وأزرار مضمنة اختيارية، حيث يحدّث التعديل المقتصر على الأزرار ترميز الرد (reply markup)، وcreate-forum-topic مع اسم ولون أيقونة أو رمز تعبيري مخصص اختياريين، إضافة إلى الأسماء البديلة send وreact وdelete وedit وsticker وsticker-search وtopic-create؛ وحواجز send-message وdelete-message وreactions وsticker معطلة افتراضيًا، ويشمل reactions كلًا من react وemoji-list، أما edit وإجراءات موضوعات المنتدى فمفعلة دون مفتاح تبديل مخصص، وتستخدم عمليات الإرسال وقت التشغيل لقطة الإعدادات والأسرار المأخوذة عند بدء التشغيل أو إعادة التحميل بدلًا من إعادة حل مراجع الأسرار عند كل إرسال.
- يفحص emoji-list التفاعلات المسموح بها في الدردشة والحساب الموثوقين الحاليين، ولا يستطيع الوكلاء فحص دردشة أخرى بينما يمكن للمشغّلين المباشرين تمرير معرّف دردشة مختلف، والحد قيمته الافتراضية 100 ولا يمكن أن يتجاوزها، وتعيد الدردشة التي لا قيود عليها التفاعلات القياسية مع ملاحظة تفيد بأنها كلها مسموح بها، ويعيد التفاعل المرفوض عينة قصيرة من التفاعلات القياسية المسموح بها ومعرّفات الرموز التعبيرية المخصصة ما لم يكن البحث نفسه قد فشل، ويمكنك تمرير رمز تعبيري Unicode أو معرّف رقمي لرمز تعبيري مخصص مباشرة إلى react.
- تعمل موافقات التنفيذ في الرسائل المباشرة للموافقين، ويمكنها اختياريًا نشر المطالبات في الدردشة أو الموضوع الذي صدر منه الطلب، ويجب أن يكون الموافقون معرّفات مستخدمين رقمية، وضبط المفتاح enabled على auto يفعلها عندما يمكن حل موافق واحد على الأقل، وترجع قائمة الموافقين عند غيابها إلى معرّفات المالكين الرقمية من قائمة سماح المالكين، والهدف dm افتراضيًا مع channel وboth بديلين، وتضيقها مرشحات الوكيل والجلسة، ولا تجعل قوائم السماح التي تحدد من يستطيع التحدث إلى البوت أحدًا موافقًا، وإن كان أول إقران تمت الموافقة عليه يؤسس قائمة المالكين، ويعرض التسليم في القناة نص الأمر، لذا لا مكان للقيمتين channel وboth إلا في المجموعات الموثوقة، والمطالبة التي تصل إلى موضوع في منتدى تحتفظ بذلك الموضوع للمتابعة، وتنتهي صلاحية الموافقات بعد 30 دقيقة افتراضيًا، وتتطلب أزرار الموافقة المضمنة أن تسمح قدرة الأزرار بالواجهة المستهدفة، وتحل معرّفات الموافقات التي تبدأ بالبادئة plugin عبر موافقات المكونات الإضافية، بينما تجرب البقية موافقات التنفيذ أولًا.
OpenClaw على Telegram هو مقال القناة الذي تبني عليه هذه الواجهات، أما سلوك رسائل Telegram في OpenClaw فهو نموذج التسليم الذي تقوم عليه.
الأزرار عبر القنوات
تحتفظ كتلة الأزرار وقيمة callback ومطالبة الموافقة بالشكل نفسه على كل قناة تملك مكونات أصلية، ولهذا يستطيع الوكيل طرح سؤال إجابته نعم أو لا دون أن يعرف أين ستتم الإجابة عنه. يعرض مقال مكونات Discord والموافقات في OpenClaw جانب Discord من هذا العقد، ويعرض مقال التفاعلات في OpenClaw دلالات التفاعلات التي ينفذها react وemoji-list.
على Diali
يعد Telegram إحدى القنوات التي تربطها Diali من لوحة التحكم، وتستبدل إعدادات المحرك المولدة عند كل إصدار، لذا فمفاتيح التنسيق والأزرار المذكورة هنا تصف ما يستطيع البوت المستضاف فعله، لا إعدادات تعدلها يدويًا. Telegram على Diali هو القناة كما تعمل على Diali، أما الأمان في Diali فهو الحدود التي تنطبق على كل إجراء يمكن أن يتخذه البوت.
- HTML افتراضيًا؛ والكتل الغنية فقط عندما يستطيع كل عميل عرضها.
- تتبع الأزرار نطاقًا؛ ولا تفتح Mini Apps إلا في الدردشات الخاصة.
- تبقى عمليات الإرسال والحذف والتفاعلات والملصقات معطلة حتى تفعل حواجزها.
كفاك قراءة، ابنِ وكيلك الخاص
جهز وكيلًا، واختر قناة، واجعله يعمل داخل التطبيق المفتوح لديك دائمًا.
