WADebug: herramienta de solución de problemas para la API de WhatsApp Business

Versión actual: 0.1.5

WADebug es una herramienta de línea de comandos que ayuda a buscar cualquier posible problema en la configuración de la API de WhatsApp Business, así como a realizar solicitudes de ayuda al servicio de asistencia de WhatsApp de manera más eficaz.

A continuación, se muestra cómo puede ayudarte WADebug con distintos tipos de configuraciones. Llevar a cabo comprobaciones hace referencia a los comandos que realizan distintas acciones para verificar la configuración del cliente de la API de WhatsApp Business. Recuperar registros hace referencia al comando para recuperar todos los registros de contenedor.

Tipo de configuraciónLlevar a cabo comprobacionesRecuperar registros

Instancia única local

Compatible (instrucciones)

Compatible (instrucciones)

Conexión múltiple/alta disponibilidad local

No compatible

Compatible (instrucciones)

AWS

No compatible

Compatible (instrucciones)

Kubernetes

No compatible

No compatible

Este documento incluye:

Instalar WADebug

WADebug es una herramienta de línea de comandos escrita en Python. Utiliza pip para instalarla:

pip3 install wadebug

Para actualizarla:

pip3 install wadebug --upgrade

Para desinstalarla:

pip3 uninstall wadebug

Para comprobar que tienes la herramienta wadebug instalada, puedes ejecutar:

wadebug --help

Llevar a cabo comprobaciones

WADebug presenta un conjunto de acciones para verificar la configuración de la API de WhatsApp Business. De forma predeterminada, ejecuta todas las acciones disponibles. Si se devuelve un estado problem o warning, se mostrarán la descripción, los detalles y los posibles métodos de mitigación para ayudarte a resolver los problemas de configuración. También se te recordará cómo subir registros a Facebook si necesitas ayuda.

Para usar la herramienta, ejecuta el comando siguiente desde la máquina que hospeda los contenedores de Docker de la API de WhatsApp Business:

wadebug

Si el resultado de una acción es wadebug_error, significa que se ha producido un problema con la herramienta. Si experimentas este problema, informa del error a través de la asistencia directa.



Archivo de configuración

WADebug requiere un archivo de configuración (wadebug.conf.yml) en el directorio actual para llevar a cabo comprobaciones completas.

Si se ejecuta wadebug sin el archivo config, la herramienta te pedirá que crees un archivo de esqueleto para rellenar los valores de configuración. Si no se encuentra ningún archivo de configuración o no se ha establecido ningún valor de configuración, algunas acciones se omitirán debido a la falta de información.

Ejemplo de archivo de configuración:

  
    # 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"
  

Lista de acciones posibles

Para consultar las acciones disponibles, ejecuta el comando siguiente:

wadebug ls

Ejecución parcial

Para ejecutar solo un subconjunto de acciones disponibles, escribe este comando:

wadebug partial check_software_version check_mysql_version

Modo JSON

wadebug ofrece dos modos: el modo interactivo y el modo JSON.

El modo interactivo es el modo predeterminado. Si utilizas este modo, verás tablas de resultados visualizadas, avisos, se te pedirá que crees el archivo de configuración, etc.
El modo JSON es útil si quieres integrar wadebug en un canal de automatización para validar la configuración de la API de WhatsApp Business periódicamente o cada vez que actualices la versión de dicha API, por ejemplo.

Para ejecutar wadebug en modo JSON, pasa la marca --json a cualquier comando wadebug disponible:

wadebug --json

Se devolverá la respuesta JSON válida:

{
   "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"
   }
}    
    

Recopilación y exclusión de datos de uso

Cada vez que se ejecute wadebug, se enviarán los datos de uso (incluidas las acciones ejecutadas y los resultados devueltos) a Facebook para ayudar a mejorar la herramienta y a acelerar el proceso de asistencia de WhatsApp a través de la asistencia directa.

Si no quieres compartir los datos de uso con Facebook cuando utilices la herramienta, ejecuta wadebug con la marca --do-not-send-usage.

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

Ten en cuenta que, aunque seguirás viendo los resultados de solución de problemas a nivel local, tu experiencia de interacción con la asistencia puede perder calidad.

Recuperar registros

wadebug es un método sencillo para recuperar todos los registros de contenedor y, de manera opcional, enviarlos a Facebook para facilitar la investigación del equipo de asistencia.

Recuperar los registros más recientes

Para recuperar los registros más recientes de wadebug_logs/ en el directorio actual:

wadebug logs

Cambios importantes:

  • versión 0.1.4 y anteriores: el comando wadebug logs recupera las últimas 10 000 líneas de registros de cada contenedor;
  • versión 0.1.5 y posteriores: el comando wadebug logs recupera las últimas 3 horas de registros de cada contenedor.

Recuperación de registros a partir de una fecha y hora determinadas

[Novedad a partir de la versión 0.1.5] Para recuperar 3 horas de registros a partir de una fecha y hora determinadas (zona horaria GMT), utiliza la opción --since. P. ej., el siguiente comando recuperará los registros desde el 07-01-2020 a las 03:00:02 GMT hasta el 07-01-2020 a las 06:00:02 GMT:

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

Enviar registros

Para enviar registros a Facebook, tendrás que añadir la marca --send. Recibirás un valor de run_id como parte de la respuesta, al que puedes hacer referencia en la asistencia directa para agilizar las investigaciones.

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

Recuperación de registros de la configuración de alta disponibilidad o conexión múltiple

En el modo de alta disponibilidad o conexión múltiple, donde los contenedores se instalan en uno o en varios hosts, debes iniciar sesión en cada uno de ellos, instalar WADebug y ejecutar los comandos wadebug logs mencionados anteriormente.

Pedir ayuda

Si necesitas ayuda para resolver problemas de configuración de la API de WhatsApp Business, abre una solicitud de asistencia directa con el valor run_id devuelto después de ejecutar wadebug. De este modo, podremos ver un informe de las acciones ejecutadas y sus respectivos resultados.

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
  	

Los registros de contenedor son muy útiles para resolver problemas. Para recopilarlos y enviarlos a Facebook, ejecuta wadebug logs con la marca --send.

wadebug logs --send

A continuación, proporciona el valor run_id devuelto.

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

Registro de cambios

15 de enero de 2020 (versión 0.1.5)

  • Retirada de la asistencia de Python 2 🎉
  • wadebug logs ahora recupera los registros de las últimas 3 horas, en lugar de las últimas 10 000 líneas de registros
  • Incorporación de la opción --since para wadebug logs, que recupera 3 horas de registros a partir de la fecha y la hora especificadas
  • [Corrección de errores] Fallo rápido en el modo json al utilizar parámetros incompatibles

3 de septiembre de 2019 (versión 0.1.4)

  • Una IU nueva y más sencilla para WADebug
  • [Corrección de errores] Corrección del puerto incorrecto impreso cuando se produce un error de conexión en la acción check_network
  • [Corrección de errores] Incorporación de los requisitos de privilegio de MySQL que faltan en la acción check_mysql_permissions

26 de abril de 2019 (versión 0.1.3)

  • Incorporación de los artículos del archivo de configuración requeridos por las acciones nuevas
  • Incorporación de comprobaciones de estado de webhooks
  • Incorporación de un mensaje de actualización de WADebug cuando existe una nueva versión disponible en PyPi
  • Incorporación de la respuesta del extremo de asistencia a los registros subidos para facilitar la resolución de problemas
  • Los registros de bloqueo de WADebug ahora se suben a Facebook.

28 de diciembre de 2018 (versión 0.1.2)

  • Limitación del tamaño de los registros recuperados
  • Captura de volcados de núcleo de la aplicación principal en caso de bloqueos
  • Incorporación de un nuevo comando para recuperar registros sin subirlos
  • Adición de enum34 como un módulo necesario para versiones anteriores a Python 3.4

23 de octubre de 2018 (versión 0.1.1)

  • Versión inicial