Dokumen ini menunjukkan cara menyiapkan satu instance klien API WhatsApp Business dalam produksi.
Jika Anda belum melakukannya, Anda direkomendasikan untuk menyiapkan satu instance klien API WhatsApp Business pada mesin developer mengikuti instruksi Pengaturan Developer: Satu Instance untuk menguji pengaturan Anda sebelum mengikuti dokumen ini untuk menyiapkan klien API WhatsApp Business dalam produksi.
Untuk menyelesaikan pengaturan awal Anda, periksa persyaratan, dan ikuti langkah-langkah ini:
biz
untuk skrip pengaturanWA_API_VERSION
Setelah Anda selesai menyiapkan instance, Anda bisa memilih untuk meningkatkannya. Untuk mencopot penginstalan klien, ikuti langkah-langkah ini.
Jika Anda telah menjalankan pengaturan developer dan ingin menggunakan kembali nomor telepon dalam produksi, lihat Panduan migrasi sebelum melanjutkan dengan sisa dokumen ini.
Konten dalam panduan ini didasarkan pada asumsi penginstalan baru yang menggunakan nomor telepon baru.
Anda akan memerlukan:
Diperlukan MySQL 5.7.xx atau PostgreSQL 13.x/12.x/11.x.
Kata sandi database Anda tidak boleh berisi karakter berikut: ?{}&~!()^=
Jika tidak mematuhi ini, pengaturan mungkin akan gagal.
Terdapat juga masalah kompatibilitas dengan MySQL 8 yang sudah diketahui. Harap hindari menggunakan yang terbaru untuk saat ini. Kami sedang aktif menggarap perbaikan.
To install Docker Desktop on your developer machine:
The remaining steps are based on macOS and should be very similar for Linux or Windows 10.
To install Docker using macOS:
Docker Compose is a plugin that is bundled with Docker Desktop and should have installed automatically. For more information about using or Docker Compose, see Overview of Docker Compose. If for some reason Docker Compose was not installed, you can install it by following the instructions located at Install Docker Compose.
biz
untuk Skrip PengaturanJalankan kode berikut di lokasi pilihan Anda untuk klien API WhatsApp Business:
mkdir ~/biz; cd ~/biz;
Buat klona file konfigurasi prod-docker-compose.yml
dan db.env
dari direktori Penginstalanrepositori Github WhatsApp-Business-API-Setup-Scripts ke direktori ~/biz
yang Anda buat di Langkah 1.
WA_API_VERSION
Variabel lingkungan WA_API_VERSION
harus diatur ke versi saat ini menggunakan:
export WA_API_VERSION=current-whatsapp-version
Ubah variabel lingkungan database dalam file db.env
di bawah direktori ~/biz
untuk mencerminkan konfigurasi MySQL/PostgreSQL Anda.
WA_DB_ENGINE=MYSQL | PGSQL WA_DB_HOSTNAME=your-database-server WA_DB_PORT=your-database-server-port WA_DB_USERNAME=your-database-username WA_DB_PASSWORD=your-database-password
Volume media lokal (whatsappMedia:/usr/local/wamedia
secara default) ditentukan dalam file prod-docker-compose.yml
digunakan untuk menyimpan file media. Secara default, volume dipasang ke direktori pada mesin Docker. Atau, Anda dapat memilih untuk memasang volume media ke direktori host. Untuk mengubah titik pasang volume media, ubah definisi volume di dalam bagian services
dari whatsappMedia
ke jalur direktori host yang Anda gunakan.
services: wacore: ... volumes: - /your-local-media-volume-path:/usr/local/wamedia ... waweb: ... volumes: - /your-local-media-volume-path:/usr/local/wamedia ...
Untuk memulai klien API WhatsApp Business dengan 1 kontainer WebApp dan 1 kontainer CoreApp, jalankan:
docker-compose -f prod-docker-compose.yml up -d
Hasil output seharusnya terlihat seperti berikut:
Creating biz_wacore_1 ... done Creating biz_waweb_1 ... done
Anda dapat memeriksa bahwa semua kontainer berstatus UP dengan menjalankan:
docker-compose -f prod-docker-compose.yml ps
Hasil output seharusnya terlihat seperti berikut:
Name Command State Ports ------------------------------------------------------------------------------------------------- biz_wacore_1 /opt/whatsapp/bin/wait_on_ ... Up 6250/tcp, 6251/tcp, 6252/tcp, 6253/tcp biz_waweb_1 /opt/whatsapp/bin/wait_on_ ... Up 0.0.0.0:9090->443/tcp
Secara default, kontainer WebApp akan berjalan pada porta 9090
.
Anda dapat mengunduh dan mengonfigurasi Koleksi Postman kami untuk berinteraksi dengan API WhatsApp Business jika Anda tidak ingin menggunakan baris perintah.
Anda dapat melakukan pemeriksaan kesehatan pada klien API WhatsApp Business menggunakan panggilan API ke node health
.
Hasil output seharusnya terlihat seperti berikut:
{ "health": { "gateway_status": "unregistered" } }
Tanggapan menunjukkan gateway_status
dari unregistered
sebagai gateway_status
karena klien API WhatsApp Business belum terdaftar.
Anda dapat mendaftarkan klien API WhatsApp Business menggunakan panggilan API ke node account
.
Lakukan pemeriksaan kesehatan lain pada klien API WhatsApp Business menggunakan panggilan API ke node health
setelah menyelesaikan pendaftaran.
Hasil output seharusnya terlihat seperti berikut:
{ "health": { "gateway_status": "connected" } }
gateway_status
connected
berarti kontainer CoreApp dapat terhubung ke server WhatsApp untuk memeriksa kontak dan mengirimkan pesan.
Anda direkomendasikan untuk menyiapkan pemantauan bagi klien API WhatsApp Business produksi Anda.
Akan ada waktu henti selama proses peningkatan.
Sangat direkomendasikan untuk mencadangkan pengaturan aplikasi Anda saat ini sebelum meningkatkannya untuk memastikan Anda dapat kembali aktif dengan cepat. Harap ikuti dokumentasi Pencadangan dan Pemulihan.
Selalu direkomendasikan untuk melakukan peningkatan selama waktu Anda yang paling tidak sibuk.
WA_API_VERSION
ke Versi BaruVariabel lingkungan WA_API_VERSION
harus diperbarui ke nomor versi terbaru menggunakan:
export WA_API_VERSION=new-whatsapp-version
Mulai ulang kontainer Docker dengan menjalankan:
docker-compose -f prod-docker-compose.yml up -d
v2.23.x
ke AtasSekarang Anda dapat menggunakan layanan peningkatan database yang memungkinkan Anda untuk meningkatkan database saat aplikasi Anda masih berjalan agar terhindar dari waktu henti.
File dbupgrade-compose.yml memiliki kolom yang menandakan versi kontainer.
Contoh:
services: dbupgrade: image: docker.whatsapp.biz/coreapp:v${WA_API_VERSION:-2.21.3}
Untuk meningkatkan penginstalan, mulailah kontainer dbupgrade-service dengan variabel lingkungan WA_API_VERSION
yang diatur ke versi terbaru:
WA_API_VERSION=new-whatsapp-version docker-compose -f dbupgrade-compose.yml up -d
Catatan: Jika Anda menggunakan orkestrasi yang memulai ulang kontainer saat keluar, terlepas dari kode keluar, mulailah layanan dengan variabel lingkungan EXIT_ON_SUCCESS
diatur ke FALSE
agar tidak keluar dari kontainer ketika kode keluar adalah 0
.
Jika peningkatan database berhasil, kontainer akan keluar dengan kode 0
. Anda dapat menggunakan perintah Docker berikut untuk melacak status:
docker wait your-database-upgrade-container-name
Outputnya adalah kode keluar dari kontainer dbupgrade-service.
Mulai ulang kontainer CoreApp dan Webapp Docker dengan variabel lingkungan WA_API_VERSION
yang diatur ke versi terbaru:
WA_API_VERSION=new-whatsapp-version docker-compose -f prod-docker-compose.yml up -d
2.29.3
ke AtasJika Anda meningkatkan dari v2.29.1
, v2.29.2
atau mengalami masalah selama peningkatan ke versi tersebut dan harus kembali ke versi sebelumnya demi stabilitas, kami merekomendasikan Anda untuk meningkatkan ke v2.29.3
, lalu jalankan perintah berikut pada kontainer Docker Webapp:
chown -R root your-media-directory/incoming your-media-directory/outgoing your-media-directory/shared
Kecuali Anda telah mengubahnya, direktori media default adalah /usr/local/wamedia
.
Catatan:
v2.29.1
dan v2.29.2
.Sangat disarankan mencadangkan pengaturan aplikasi Anda saat ini sebelum menghapus instalan. Harap ikuti dokumentasi Pencadangan dan Pemulihan.
Jika Anda perlu mereset lingkungan pengembangan Anda dengan menghapus semua kontainer, jalankan perintah berikut dari direktori yang berisi file prod-docker-compose.yml
:
docker-compose -f prod-docker-compose.yml down
Hasil output seharusnya terlihat seperti berikut:
Stopping biz_waweb_1 ... done Stopping biz_wacore_1 ... done Removing biz_waweb_1 ... done Removing biz_wacore_1 ... done
Selain kontainer, untuk menghilangkan semua volume yang ditentukan dalam file prod-docker-compose.yml
, jalankan perintah down
dengan parameter -v
:
docker-compose -f prod-docker-compose.yml down -v
Kami rekomendasikan penggunaan WADebug untuk pemecahan masalah yang lebih efektif. WADebug adalah fitur baris perintah untuk membantu menemukan potensi masalah mengenai pengaturan API WhatsApp Business, dan membuat permintaan bantuan dari dukungan WhatsApp lebih efektif.
Apabila WADebug tidak dapat digunakan atau jika terjadi kesalahan setiap fitur ini dijalankan, jalankan perintah berikut untuk mengumpulkan catatan dari semua kontainer:
docker-compose -f prod-docker-compose.yml logs > debug_output.txt
Untuk mengumpulkan catatan dari layanan spesifik, tambahkan nama layanan (waweb
atau wacore
) ke perintah docker-compose logs
:
docker-compose -f prod-docker-compose.yml logs waweb > debug_output.txt
Anda dapat menemukan catatan dalam file debug_output.txt
di direktori saat ini.
Perangkat lunak ini menggunakan kode FFmpeg yang dilisensikan di bawah LGPLv2.1 dan sumbernya bisa diunduh di sini.