WADebug: Fitur Pemecahan Masalah untuk API WhatsApp Business

Versi saat ini: 0.1.5

WADebug adalah fitur baris perintah untuk membantu menemukan potensi isu apa pun dengan pengaturan API WhatsApp Business, dan untuk membuat permintaan bantuan dari dukungan WhatsApp menjadi lebih efektif.

Dukungan WADebug untuk jenis pengaturan yang berbeda ditampilkan di bawah. Menjalankan pemeriksaan mengacu pada perintah yang menjalankan berbagai tindakan untuk memverifikasi pengaturan klien API WhatsApp Business. Mendapatkan catatan mengacu pada perintah untuk mengambil semua catatan kontainer.

Jenis PengaturanMenjalankan pemeriksaanMendapatkan catatan

Instance Tunggal di Tempat

Didukung (instruksi)

Didukung (instruksi)

Ketersediaan Tinggi / Multikoneksi di Tempat

Tidak Didukung

Didukung (instruksi)

AWS

Tidak Didukung

Didukung (instruksi)

Kubernetes

Tidak Didukung

Tidak Didukung

Dokumen ini mencakup:

Instal WADebug

WADebug adalah fitur baris perintah yang ditulis dalam Python. Instal menggunakan pip:

pip3 install wadebug

Untuk meningkatkan:

pip3 install wadebug --upgrade

Untuk menghapus instalasi:

pip3 uninstall wadebug

Untuk memvalidasi WADebug sudah diinstal, jalankan:

wadebug --help

Menjalankan pemeriksaan

WADebug memiliki serangkaian tindakan untuk memverifikasi pengaturan API WhatsApp Business. Secara default, ini menjalankan semua tindakan yang tersedia. Jika mendapat status problem atau warning, deskripsi, detail, dan kemungkinan metode mitigasi ditampilkan untuk membantu Anda memecahkan masalah pengaturan. Anda juga akan diingatkan tentang cara mengunggah catatan ke Facebook jika Anda membutuhkan bantuan.

Untuk menggunakan fitur ini, jalankan perintah berikut dari mesin yang meng-hosting kontainer docker API WhatsApp Business:

wadebug

Jika suatu tindakan menghasilkan wadebug_error, ini menunjukkan bahwa ada isu dengan fitur itu sendiri. Jika Anda mengalami masalah seperti itu, harap laporkan bug ini melalui Dukungan Langsung



File Konfigurasi

WADebug memerlukan file konfigurasi (wadebug.conf.yml) di direktori saat ini untuk menjalankan pemeriksaan penuh.

Saat menjalankan wadebug tanpa file konfigurasi, fitur akan meminta untuk membuat file kerangka agar Anda isi nilai konfigurasi. Jika tidak ada file konfigurasi yang dapat ditemukan atau tidak ada nilai konfigurasi yang ditetapkan, beberapa tindakan akan dilewati karena kurangnya informasi.

Contoh file konfigurasi:

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

Membuat daftar tindakan yang mungkin

Untuk memeriksa tindakan yang tersedia, jalankan perintah berikut:

wadebug ls

Menjalankan sebagian

Untuk menjalankan hanya sebagian dari tindakan yang tersedia, ketik perintah ini:

wadebug partial check_software_version check_mysql_version

Mode JSON

wadebug menawarkan dua mode: mode interaktif dan mode JSON.

Mode interaktif adalah mode default, ketika mode ini digunakan, Anda akan disajikan dengan tabel hasil visualisasi, pemberitahuan, dan diminta untuk membuat file konfigurasi, dsb.
Mode JSON berguna ketika Anda ingin mengintegrasikan wadebug ke dalam saluran otomatisasi untuk memvalidasi pengaturan API WhatsApp Business secara berkala atau setiap kali Anda meningkatkan versi API WhatsApp Business, misalnya.

Untuk menjalankan wadebug dalam mode JSON, teruskan bendera --json ke perintah wadebug apa saja yang tersedia:

wadebug --json

Tanggapan JSON valid akan ditampilkan:

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

Pengumpulan data penggunaan dan pilihan keluar

Setiap kali wadebug dijalankan, data penggunaan (termasuk tindakan yang dijalankan dan hasil yang diberikan) akan dikirimkan ke Facebook untuk membantu meningkatkan fitur serta mempercepat proses dukungan WhatsApp melalui Dukungan Langsung.

Jika Anda tidak ingin berbagi data penggunaan dengan Facebook saat menggunakan fitur ini, jalankan wadebug dengan bendera --do-not-send-usage

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

Ingatlah bahwa, meskipun Anda masih akan melihat hasil pemecahan masalah secara lokal, pengalaman Anda berinteraksi dengan dukungan kami mungkin menurun.

Mendapatkan catatan

wadebug menyediakan cara mudah untuk mengambil semua catatan kontainer, dan secara opsional mengirimkannya ke Facebook untuk membantu penyelidikan tim dukungan kami.

Mengambil catatan terbaru

Untuk mengambil dan menyimpan catatan terbaru di bawah wadebug_logs/ di direktori saat ini:

wadebug logs

Perubahan penting:

  • v0.1.4 ke bawah: perintah wadebug logs mengambil catatan 10RB baris terakhir dari tiap kontainer
  • v0.1.5 ke atas: perintah wadebug logs mengambil catatan 3 jam terbaru dari tiap kontainer.

Mengambil catatan mulai dari tanggal waktu tertentu

[Baru sejak v0.1.5] Untuk mengambil 3 jam catatan mulai dari waktu tanggal tertentu (zona waktu GMT), gunakan opsi --since. Contoh: perintah berikut akan mengambil catatan dari 7 Januari 2020 03.00.02 GMT sampai 7 Januari 2020 06.00.02 GMT:

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

Mengirim catatan

Untuk mengirim catatan ke Facebook, Anda perlu menambahkan bendera --send. Anda akan menerima run_id sebagai bagian dari tanggapan, yang dapat Anda rujuk di Dukungan Langsung untuk penyelidikan yang lebih cepat.

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

Mengambil catatan dari pengaturan Ketersediaan Tinggi/Multikoneksi

Untuk mode Ketersediaan Tinggi/Multikoneksi tempat kontainer diinstal pada satu atau beberapa host, Anda harus masuk ke setiap host, menginstal WADebug dan menjalankan perintah wadebug logs yang disebutkan di atas.

Meminta bantuan

Jika Anda memerlukan bantuan dalam memecahkan masalah pengaturan API WhatsApp Business, buka tiket Dukungan Langsung dengan run_id yang diberikan setelah Anda menjalankan wadebug. Hal ini memungkinkan kita untuk melihat laporan dari tindakan yang dijalankan dan hasil masing-masing.

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
  	

Catatan kontainer sangat berguna untuk pemecahan masalah, untuk mengumpulkan dan mengirim catatan kontainer ke Facebook, jalankan wadebug logs dengan bendera --send.

wadebug logs --send

dan sediakan run_id yang diberikan

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

Catatan Perubahan

15 Januari 2020 (0.1.5)

  • Dukungan Python 2 tidak berlaku lagi 🎉
  • wadebug logs sekarang mendapat catatan 3 jam terakhir, dan bukan catatan 10 ribu baris terakhir
  • Menambahkan opsi --since ke wadebug logs yang mengambil 3 jam catatan mulai dari nilai waktu tanggal yang ditentukan
  • [Perbaikan Bug] Gagal dengan cepat dalam mode json ketika parameter yang tidak kompatibel digunakan

3 September 2019 (v0.1.4)

  • UI baru dan lebih bersih untuk WADebug
  • [Perbaikan Bug] Memperbaiki port yang salah dicetak ketika ada kesalahan saat menghubungkan di tindakan check_network
  • [Perbaikan Bug] Menambahkan persyaratan hak istimewa MySQL yang belum ada dalam tindakan check_mysql_permissions

26 April 2019 (v0.1.3)

  • Menambahkan item file konfigurasi yang diwajibkan oleh tindakan baru
  • Menambahkan pemeriksaan kesehatan Webhooks
  • Menambahkan permintaan pembarun WADebug saat versi baru tersedia di PyPi
  • Menambahkan tanggapan endpoint dukungan ke catatan yang diunggah untuk pemecahan masalah yang lebih mudah
  • Catatan kerusakan WADebug sekarang diunggah ke Facebook

28 Desember 2018 (v0.1.2)

  • Batas ukuran catatan diambil kembali
  • Mengambil gambar Coreapp coredumps jika terjadi crash
  • Menambahkan perintah baru untuk mengambil catatan tanpa mengunggah
  • Menambahkan enum34 sebagai modul wajib untuk < Python 3.4

23 Oktober 2018 (v0.1.1)

  • Rilis awal