最新版本:0.1.5
WADebug 為命令列工具,可協助找出與 WhatsApp Business API 設定相關的任何潛在問題,而且能更有效地向 WhatsApp 支援團隊尋求協助。
本文內容:
WADebug 是用 Python 編寫的命令列工具。使用 pip 安裝這項工具:
pip3 install wadebug
升級:
pip3 install wadebug --upgrade
解除安裝:
pip3 uninstall wadebug
若要確認是否已安裝 WADebug,可執行:
wadebug --help
WADebug 提供一組動作可用來確認 WhatsApp Business API 的設定。根據預設,它會執行所有可用的動作。如果系統傳回 problem
或 warning
狀態,會顯示說明、詳細資料和可能的排解方式,以協助您解決設定相關問題。也會顯示提示,讓您知道需要協助時如何將記錄上傳至 Facebook。
若要使用這項工具,請在託管 WhatsApp Business API Docker 容器的機器上執行下列命令:
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
wadebug
提供兩種模式:互動模式和 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
時,系統都會將使用資料(包括執行的動作和傳回的結果)傳送至 Facebook,有助於改善這項工具,並加速透過直接支援服務尋求 WhatsApp 支援的流程。
如果您不想在使用這項工具時將使用資料分享給 Facebook,請執行 wadebug
並使用 --do-not-send-usage
旗標
wadebug partial check_network --do-not-send-usage
請注意,雖然您仍可在本機查看疑難排解的結果,但您與支援團隊的互動體驗可能會有所下降。
wadebug
能讓您以便利的方式擷取所有容器記錄,還可選擇將這些記錄傳送至 Facebook,以便協助支援團隊進行調查。
若要在目前目錄的 wadebug_logs/
下擷取最新動態記錄:
wadebug logs
重要變更:
wadebug logs
命令會從每個容器擷取最後 1 萬行的記錄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
命令。
如果您在排解 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,請執行 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
2020 年 1 月 15 日(0.1.5 版)
wadebug logs
現在會擷取過去 3 小時的記錄,而非最後 1 萬行記錄wadebug logs
中新增 --since
選項,以便擷取指定的日期時間值起算的 3 小時記錄2019 年 9 月 3 日(0.1.4 版)
2019 年 4 月 26 日(0.1.3 版)
2018 年 12 月 28 日(0.1.2 版)
2018 年 10 月 23 日(0.1.1 版)