WADebug:适用于 WhatsApp Business API 的疑难解决工具

当前版本:0.1.5

WADebug 是一个命令行工具,可以帮助您找到 WhatsApp Business API 设置中的任何潜在问题,并让您更有效地向 WhatsApp 支持团队请求帮助。

下方表格列出了 WADebug 为不同设置类型提供的支持。运行检查是指运行命令来执行各种操作,从而检查 WhatsApp Business API 客户端设置。检索日志是指运行命令来检索所有容器日志。

设置类型运行检查检索日志

本地单一实例

支持(说明

支持(说明

本地高可用性或多连接

不支持

支持(说明

AWS

不支持

支持(说明

Kubernetes

不支持

不支持

本文档包括以下内容:

安装 WADebug

WADebug 是使用 Python 编写的命令行工具。如要安装 WADebug,请使用以下 pip 命令:

pip3 install wadebug

如要升级 WADebug,请使用以下 pip 命令:

pip3 install wadebug --upgrade

如要卸载 WADebug,请使用以下 pip 命令:

pip3 uninstall wadebug

如要验证是否已安装 WADebug,您可以运行以下命令:

wadebug --help

运行检查

WADebug 可通过一系列操作来验证 WhatsApp Business API 设置。默认情况下,此工具会运行所有可用的操作。如果系统返回 problemwarning 状态,则 WADebug 会显示说明、详细信息和可能的缓解方法,帮助您解决设置相关的疑难问题。如果您需要帮助,我们还提供将日志上传至 Facebook 的操作提示。

如要使用此工具,请在托管 WhatsApp Business API Docker 容器的计算机上运行以下命令:

wadebug

如果系统针对操作返回 wadebug_error,则表示 WADebug 工具本身存在问题。如果收到该错误消息,请通过站内支持报告此漏洞



配置文件

您需要在当前目录中提供一个配置文件 (wadebug.conf.yml),以便 WADebug 运行完整检查。

如果在没有配置文件的情况下运行 wadebug,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 提供 2 种模式:互动模式和 JSON 模式。

默认的模式是互动模式,在使用此模式时,您会看到可视化的结果表、提醒以及创建配置文件的操作提示等。
如果您想将 wadebug 集成到自动化管道,以便定期或在每次升级 WhatsApp Business API 版本时验证 WhatsApp Business API 设置,JSON 模式会非常有效。

如要在 JSON 模式下运行 wadebug,请将 --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 时,WADebug 都会向 Facebook 发送使用情况数据(包括运行的操作和返回的结果),从而帮助改进此工具,并加快通过站内支持获取 WhatsApp 支持的流程。

如果您不想在使用 WADebug 时与 Facebook 分享使用情况数据,请运行以下带有 --do-not-send-usage 标记的 wadebug 命令

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

请注意,虽然您仍可在本地查看疑难解决结果,但与我们支持团队互动的体验可能会大打折扣。

检索日志

wadebug 提供便利的方法,帮助用户检索所有容器日志,用户还可选择向 Facebook 发送这些数据,以便协助支持团队开展调查。

检索最新日志

如要检索当前目录中 wadebug_logs/ 下的最新日志,请运行以下命令:

wadebug logs

重要更新

  • v0.1.4 及更低版本:wadebug logs 命令可检索各容器中最新的 1 万行日志
  • v0.1.5 及更高版本:wadebug logs 命令可检索各容器中最近 3 小时内的日志

检索特定日期时间之后的日志

[v0.1.5 及更高版本] 如要检索特定日期时间(GMT 时区)之后 3 小时内的日志,请使用 --since 选项。例如:以下命令将检索从 2020-01-07 3:00:02 GMT2020-01-07 6:00:02 GMT 之间的日志:

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

检索高可用性或多连接设置中的日志

高可用性或多连接模式下,容器安装在 1 台或多台主机上。对于这类模式,您需要登录各主机,安装 WADebug,然后运行上述 wadebug logs 命令。

请求帮助

如果解决 WhatsApp Business API 设置疑难时需要帮助,您可以使用运行 wadebug 后返回的 run_id 打开站内支持工单,以便我们查看操作报告及其相应的结果。

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,请运行带有 --send 标记的 wadebug logs 命令。

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
  	

更新日志

2020 年 1 月 15 日 (0.1.5)

  • 停用 Python 2 支持 🎉
  • wadebug logs 现在可获取过去 3 小时内的日志,而不是最新的 1 万行日志
  • wadebug logs 中添加 --since 选项可检索指定日期时间值之后 3 小时内的日志
  • [漏洞修复] 使用不兼容的参数时,在 JSON 模式下会快速失败

2019 年 9 月 3 日 (v0.1.4)

  • WADebug 采用更加简洁的全新用户界面
  • [漏洞修复] 修复了以下漏洞:在运行 check_network 操作时,如果连接出错,会打印错误的端口
  • [漏洞修复] 为 check_mysql_permissions 操作添加缺少的 MySQL 权限要求

2019 年 4 月 26 日 (v0.1.3)

  • 添加新操作所需的新配置文件项目
  • 添加 Webhooks 运行状况检查
  • 添加 WADebug 升级提示,通知用户 PyPi 上有可用的新版本
  • 在上传的日志中添加支持端点响应,用于帮助解决疑难问题
  • 现在可向 Facebook 上传 WADebug 崩溃日志

2018 年 12 月 28 日 (v0.1.2)

  • 限制检索日志的大小
  • 在崩溃时获取核心应用的核心转储信息
  • 添加新命令,以便在不上传日志的情况下检索日志
  • 添加 enum34 作为 Python 3.4 之前版本的必要模块

2018 年 10 月 23 日 (v0.1.1)

  • 初始版本