WADebug: أداة استكشاف الأخطاء وإصلاحها لواجهة API الخاصة بتطبيق WhatsApp للأعمال

الإصدار الحالي: 0.1.5

أداة WADebug عبارة عن أداة سطر أوامر للمساعدة في العثور على المشكلات المحتملة المتعلقة بإعداد واجهة API الخاصة بتطبيق WhatsApp للأعمال وإجراء طلبات مساعدة من دعم WhatsApp أكثر فعالية.

يظهر دعم WADebug لأنواع الإعدادات المختلفة أدناه. ويشير تنفيذ عمليات التحقق إلى الأوامر التي تُشغل الإجراءات المتنوعة للتحقق من إعداد عميل واجهة API الخاصة بتطبيق WhatsApp للأعمال. كما تشير استرداد السجلات إلى أمر استرداد كل سجلات الحاوية.

نوع الإعدادتنفيذ عمليات التحققاسترداد السجلات

مثيل منفرد داخل المواقع

مدعوم (التعليمات)

مدعوم (التعليمات)

التوّفر العالي/الاتصال المتعدد داخل المواقع

غير مدعوم

مدعوم (التعليمات)

AWS

غير مدعوم

مدعوم (التعليمات)

Kubernetes

غير مدعوم

غير مدعوم

يتناول هذا المستند:

تثبيت WADebug

WADebug عبارة عن أداة سطر أوامر مكتوبة بلغة Python. ويمكنك تثبيت الأداة باستخدام pip:

pip3 install wadebug

للترقية:

pip3 install wadebug --upgrade

لإلغاء التثبيت:

pip3 uninstall wadebug

للتحقق من تثبيت wadebug، يمكنك تشغيل:

wadebug --help

تنفيذ عمليات التحقق

تحتوي أداة WADebug على مجموعة من الإجراءات للتحقق من صحة إعداد واجهة API واتساب للأعمال. وتقوم الأداة افتراضيًا بتشغيل جميع الإجراءات المتوفرة. وإذا تم إرجاع الحالة problem أو warning، فسيتم عرض الوصف والتفاصيل وأساليب التخفيف الممكنة لمساعدتك في استكشاف أخطاء الإعداد وإصلاحها. كما سيتم تذكيرك بطريقة تحميل السجلات على فيسبوك إذا كنت بحاجة إلى المساعدة.

لاستخدام الأداة، يمكنك تشغيل الأمر التالي من الجهاز الذي يستضيف حاويات Docker لواجهة API الخاصة بتطبيق WhatsApp للأعمال:

wadebug

إذا أدى الإجراء إلى wadebug_error، فهذا يشير إلى وجود مشكلة في الأداة نفسها. وإذا واجهت مثل هذه المشكلة، فيُرجى الإبلاغ عن هذا الخطأ من خلال الدعم المباشر



ملف التكوين

تتطلب أداة WADebug وجود ملف تكوين (wadebug.conf.yml) في الدليل الحالي لتنفيذ عمليات تحقق كاملة.

عند تشغيل wadebug بدون ملف تكوين، فستطالب الأداة بإنشاء ملف هيكل من أجلك لتعبئة قيم التكوين. وإذا تعذر العثور على ملف التكوين أو لم يتم تعيين أي قيم للتكوين، فسيتم تخطي بعض الإجراءات نتيجة لعدم توفر المعلومات.

عينة من ملف التكوين:

  
    # configurations related to the MySQL database
    db:
      # hostname of the MySQL database
      host: # for example, "0.0.0.0"
      # host port that the MySQL database uses
      # to connect to database container created by docker-compose scripts, use 33060
      port: # for example, 33060
      # username to connect to the MySQL database
      user: # for example, "root"
      # password of the username that is used to connect to the MySQL database
      password: # for example, "your_database_password"

    # configurations related to WhatsApp Business API
    webapp:
      # url accessible from the host running wadebug
      baseUrl: # https://localhost:9090
      # WhatsApp Business API user account credentials to call Support API
      user: # for example, "wadebug"
      # WhatsApp Business API user account credentials to call Support API
      password: # for example, "secretdebugger"
  

قائمة الإجراءات المحتملة

للتحقق من الإجراءات المتاحة، يمكنك تشغيل الأمر التالي:

wadebug ls

التشغيل الجزئي

لتشغيل مجموعة فرعية من الإجراءات المتاحة فقط، اكتب هذا الأمر:

wadebug partial check_software_version check_mysql_version

وضع JSON

توفر أداة wadebug وضعين وهما: الوضع التفاعلي ووضع JSON.

يُعد الوضع التفاعلي هو الوضع الافتراضي، وعند استخدام هذا الوضع، سترى جداول مرئية للنتائج والإشعارات وستكون مطالبًا بإنشاء ملف تكوين وما إلى ذلك.
ويكون وضع JSON مفيدًا عندما ترغب في دمج أداة wadebug ضمن مسارات التشغيل التلقائي للتحقق من صحة إعداد واجهة API الخاصة WhatsApp بتطبيق للأعمال بشكل دوري أو في كل مرة تحاول فيها ترقية إصدار واجهة API الخاصة بتطبيق WhatsApp للأعمال على سبيل المثال.

لتشغيل أداة wadebug في وضع JSON، يمكنك إدخال علامة --json في أي أمر متوفر من wadebug:

wadebug --json

سيتم إرجاع استجابة JSON الصالحة:

{
   "containers_status":{
      "class":"CheckContainersAreUp",
      "user_facing_name":"containers_status",
      "result":"OK"
   },
   "check_mysql_connection":{
      "class":"CheckMySQLConnection",
      "user_facing_name":"check_mysql_connection",
      "result":"OK"
   },
   "check_software_version":{
      "class":"CheckSoftwareVersion",
      "user_facing_name":"check_software_version",
      "result":"OK"
   },
   "check_mysql_version":{
      "class":"CheckMySQLVersion",
      "user_facing_name":"check_mysql_version",
      "result":"OK"
   },
   "check_network":{
      "class":"CheckNetworkAction",
      "user_facing_name":"check_network",
      "result":"OK"
   },
   "check_mysql_permissions":{
      "class":"CheckMySQLPermissions",
      "user_facing_name":"check_mysql_permissions",
      "result":"OK"
   },
   "check_mysql_password":{
      "class":"CheckMySQLPassword",
      "user_facing_name":"check_mysql_password",
      "result":"OK"
   },
   "check_db_settings_exist":{
      "class":"CheckDbSettingsExist",
      "user_facing_name":"check_db_settings_exist",
      "result":"OK"
   },
   "check_webapp_port":{
      "class":"CheckWebappPortAction",
      "user_facing_name":"check_webapp_port",
      "result":"OK"
   }
}    
    

جمع بيانات الاستخدام وإلغاء الاشتراك

في كل مرة يتم فيها تشغيل أداة wadebug، سيتم إرسال بيانات الاستخدام (بما في ذلك الإجراءات التي يتم تشغيلها والنتائج التي يتم إرجاعها) إلى Facebook للمساعدة في تحسين الأداة، بالإضافة إلى تسريع عملية دعم WhatsApp عبر الدعم المباشر.

إذا كنت لا ترغب في مشاركة بيانات الاستخدام مع Facebook عند استخدام الأداة، فيمكنك تشغيل أداة wadebug مع العلامة --do-not-send-usage

wadebug partial check_network --do-not-send-usage

تذكّر دائمًا أنه على الرغم من استمرار ظهور نتائج استكشاف الأخطاء وإصلاحها محليًا، فقد تتدهور تجربة التفاعل مع الدعم لدينا.

استرداد السجلات

توفر أداة wadebug طريقة ملائمة لاسترداد جميع سجلات الحاوية وإرسالها إلى Facebook بشكل اختياري للمساعدة في عمليات التحقق من جانب فريق الدعم لدينا.

استرداد السجلات الأحدث

لاسترداد السجلات الأحدث ضمن wadebug_logs/ في الدليل الحالي:

wadebug logs

التغييرات المهمة:

  • الإصدار 0.1.4 والإصدارات الأقدم: يسترد الأمر wadebug logsآخر 10 آلاف سطر في السجلات من كل حاوية
  • الإصدار 0.1.5 والإصدارات الأحدث: يسترد الأمر wadebug logsآخر 3 ساعات من السجلات من كل حاوية

استرداد السجلات بدءًا من تاريخ/وقت محدد

[جديد منذ الإصدار 0.1.5] لاسترداد 3 ساعات من السجلات بدءًا من تاريخ/وقت محدد (المنطقة الزمنية بتوقيت جرينتش)، استخدم الخيار --since. على سبيل المثال: سيسترد الأمر التالي السجلات من 2020-01-07 3:00:02 بتوقيت جرينتش إلى 2020-01-07 6:00:02 بتوقيت جرينتش:

wadebug logs --since='2020-01-07 3:00:02'

إرسال السجلات

لإرسال السجلات إلى Facebook، تحتاج إلى إلحاق العلامة --send. وستتلقى معرف run_id كجزء من الاستجابة والذي يمكنك الإشارة إليه في الدعم المباشر لإجراء عمليات التحقق بشكل أسرع. :

wadebug logs --send
wadebug logs --since='2020-01-07 3:00:02' --send

استرداد السجلات من إعداد التوّفر العالي/الاتصال المتعدد

بالنسبة للوضع التوّفر العالي/الاتصال المتعدد حيث يتم تثبيت الحاويات على مضيف واحد أو عدة مضيفات، تحتاج إلى تسجيل الدخول إلى كل مضيف وتثبيت WADebug وتشغيل أوامر wadebug logs المذكورة أعلاه.

طلب المساعدة

إذا كنت بحاجة للمساعدة في استكشاف أخطاء إعداد واجهة API الخاصة بتطبيق WhatsApp للأعمال وإصلاحها، فيرجى فتح تذكرة دعم مباشر تحتوي على معرف run_id الذي تم إرجاعه بعد تشغيل أداة wadebug. ويتيح لنا ذلك الاطّلاع على تقرير بالإجراءات التي تم تشغيلها والنتائج ذات الصلة.

A report of this run has been uploaded to Facebook.  You can reference run_id (A5jedVKsdI_ZojRwL1_-MOd) in Direct Support (https://business.facebook.com/direct-support) tickets
  	

تُعد سجلات الحاوية مفيدة للغاية في عمليات استكشاف الأخطاء وإصلاحها، ولتجميع سجلات الحاوية وإرسالها إلى Facebook، يرجى تشغيل سجلات wadebug logs مع العلامة --send.

wadebug logs --send

واحرص على توفير المعرف run_id الذي تم إرجاعه

Container logs have been uploaded to Facebook.  You can reference run_id (AcClyxkRJk3w1dEr8OAmsTn) in Direct Support (https://business.facebook.com/direct-support) tickets
  	

سجل التغييرات

15 يناير 2020 (الإصدار 0.1.5)

  • إيقاف دعم python 2 🎉
  • يؤدي الأمر wadebug logs الآن على استرداد آخر 3 ساعات من السجلات، بدلاً من آخر 10 آلاف سطر من السجلات
  • تمت إضافة الخيار --since إلى الأمر wadebug logs الذي يسترد 3 ساعات من السجلات بدءًا من قيمة التاريخ/الوقت المحددة
  • [إصلاح الخطأ] حالات الفشل السريع في وضع json عند استخدام المعلمات غير المتوافقة

3 سبتمبر 2019 (الإصدار 0.1.4)

  • واجهة مستخدم جديدة وأكثر تنظيمًا لأداة WADebug
  • [إصلاح الخطأ] إصلاح المنفذ الخاطئ المطبوع عندما يكون هناك خطأ في الاتصال في إجراء check_network
  • [إصلاح الخطأ] إضافة متطلبات ميزة MySQL المفقودة في الإجراء check_mysql_permissions

26 أبريل 2019 (الإصدار 0.1.3)

  • إضافة عناصر ملف التكوين الجديدة المطلوبة بواسطة الإجراءات الجديدة
  • إضافة عمليات التحقق من سلامة الأداء في webhook
  • إضافة مطالبة ترقية WADebug عند توافر إصدار جديد على PyPi
  • إضافة استجابة نقطة نهاية الدعم إلى السجلات التي تم تحميلها لاستكشاف الأخطاء وإصلاحها بشكل أسهل
  • يتم الآن تحميل سجلات أعطال WADebug على فيسبوك

28 ديسمبر 2018 (الإصدار 0.1.2)

  • الحد من حجم السجلات التي تم استردادها
  • التقاط أعطال coreapp الأساسية في حالة حدوث الأعطال
  • إضافة أمر جديد لاسترداد السجلات بدون تحميل
  • إضافة enum34 كوحدة مطلوبة للإصدارات الأقدم من Python 3.4

23 أكتوبر 2018 (الإصدار 0.1.1)

  • الإصدار الأولي