Tài liệu này hướng dẫn bạn cách thiết lập một phiên bản của ứng dụng API WhatsApp Business trên máy của nhà phát triển cho mục đích thử nghiệm.
Để thiết lập trong môi trường chính thức, hãy làm theo các hướng dẫn phù hợp nêu trong phần Thiết lập trong môi trường chính thức.
Bạn cần có:
Thực hiện các bước sau để cài đặt một phiên bản của ứng dụng API WhatsApp Business trên hệ thống của nhà phát triển.
biz
cho các tập lệnh thiết lậpChạy mã sau ở vị trí bạn muốn cho ứng dụng API WhatsApp Business:
mkdir ~/biz; cd ~/biz;
Các file cấu hình của ứng dụng API WhatsApp Business có tại kho lưu trữ WhatsApp-Business-API-Setup-Scripts GitHub. Bạn có thể thiết lập ứng dụng API WhatsApp Business với một phiên bản cơ sở dữ liệu MySQL hoặc Postgres.
docker-compose.yml
và db.env
từ thư mục Cài đặt vào thư mục ~/biz
mà bạn đã tạo ở Bước 1.docker-compose.yml
và db.env
từ thư mục Cài đặt Postgres vào thư mục ~/biz
mà bạn đã tạo ở Bước 1.WA_API_VERSION
Bạn nên đặt biến môi trường WA_API_VERSION
thành phiên bản hiện tại bằng:
export WA_API_VERSION=current-whatsapp-version
Để khởi động ứng dụng API WhatsApp Business với 1 vùng chứa cơ sở dữ liệu, 1 vùng chứa Webapp và 1 vùng chứa Coreapp, hãy chạy:
docker-compose up -d
Phản hồi sẽ tương tự như sau:
Creating volume "biz_whatsappMedia" with local driver Creating volume "biz_mysqlData" with local driver Creating biz_db_1 ... done Creating biz_wacore_1 ... done Creating biz_waweb_1 ... done
Bạn có thể kiểm tra để đảm bảo rằng tất cả vùng chứa đều có trạng thái UP bằng cách chạy:
docker-compose ps
Theo mặc định, vùng chứa Webapp sẽ chạy trên cổng 9090
và vùng chứa cơ sở dữ liệu sẽ chạy trên cổng 33060
.
Phản hồi sẽ tương tự như sau:
~/biz $ docker-compose ps Name Command State Ports ------------------------------------------------------------------------------------------------- biz_db_1 docker-entrypoint.sh mysqld Up 0.0.0.0:33060->3306/tcp, 33060/tcp 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
Bạn có thể tải xuống và cấu hình Bộ sưu tập Postman của chúng tôi để tương tác với API WhatsApp Business nếu không muốn sử dụng dòng lệnh.
Bạn có thể tiến hành kiểm tra sự cố trên ứng dụng API WhatsApp Business bằng cách dùng lệnh gọi API đến nút health
.
Phản hồi sẽ tương tự như sau:
{ "health": { "gateway_status": "unregistered" } }
Phản hồi sẽ hiển thị gateway_status
là unregistered
dưới dạng gateway_status
vì chưa đăng ký ứng dụng API WhatsApp Business.
Bạn có thể đăng ký ứng dụng API WhatsApp Business bằng lệnh gọi API đến nút account
.
Tiến hành kiểm tra sự cố một lần nữa trên ứng dụng API WhatsApp Business bằng lệnh gọi API đến nút health
sau khi hoàn tất quá trình đăng ký.
Phản hồi sẽ tương tự như sau:
{ "health": { "gateway_status": "connected" } }
gateway_status
là connected
nghĩa là vùng chứa Coreapp có thể kết nối với máy chủ WhatsApp để kiểm tra danh bạ và gửi tin nhắn.
Thời gian ngừng hoạt động sẽ xảy ra trong quá trình nâng cấp.
Bạn nên sao lưu các cài đặt ứng dụng hiện tại trước khi nâng cấp để đảm bảo có thể nhanh chóng sao lưu và chạy. Vui lòng xem Tài liệu hướng dẫn sao lưu và khôi phục.
Bạn nên thực hiện nâng cấp vào những lúc rảnh nhất.
WA_API_VERSION
thành phiên bản mớiBạn phải cập nhật biến môi trường WA_API_VERSION
thành số phiên bản mới bằng:
export WA_API_VERSION=new-whatsapp-version
Khởi động lại các vùng chứa Docker bằng cách chạy:
docker-compose up -d
Phản hồi sẽ tương tự như sau:
biz_db_1 is up-to-date Recreating biz_wacore_1 ... done Recreating biz_waweb_1 ... done
v2.23.x
trở lênGiờ bạn có thể sử dụng dịch vụ nâng cấp cơ sở dữ liệu để nâng cấp cơ sở dữ liệu của mình trong khi ứng dụng vẫn đang chạy nhằm tránh trường hợp ngừng hoạt động.
File dbupgrade-compose.yml có các trường thông tin cho biết phiên bản vùng chứa.
Ví dụ:
services: dbupgrade: image: docker.whatsapp.biz/coreapp:v${WA_API_VERSION:-2.21.3}
Để nâng cấp bản cài đặt, hãy khởi động vùng chứa dbupgrade-service khi đặt biến môi trường WA_API_VERSION
thành phiên bản mới nhất:
WA_API_VERSION=new-whatsapp-version docker-compose -f dbupgrade-compose.yml up -d
Lưu ý: Nếu bạn sử dụng một tổ hợp sẽ khởi động lại vùng chứa khi thoát, bất kể mã thoát là gì, hãy khởi động dịch vụ sau khi đặt biến môi trường EXIT_ON_SUCCESS
thành FALSE
để tránh thoát khỏi vùng chứa khi mã thoát là 0
.
Nếu nâng cấp cơ sở dữ liệu thành công, vùng chứa sẽ thoát với mã 0
. Để theo dõi trạng thái, bạn có thể sử dụng lệnh Docker sau:
docker wait your-database-upgrade-container-name
Lệnh này sẽ trả về mã thoát của vùng chứa dbupgrade-service.
Khởi động lại các vùng chứa Coreapp và Webapp Docker khi đặt biến môi trường WA_API_VERSION
thành phiên bản mới nhất:
WA_API_VERSION=new-whatsapp-version docker-compose up -d
Bạn nên sao lưu các cài đặt ứng dụng hiện tại của mình trước khi gỡ cài đặt. Vui lòng xem Tài liệu hướng dẫn sao lưu và khôi phục.
Nếu bạn cần gỡ tất cả các vùng chứa để đặt lại môi trường phát triển, hãy chạy lệnh sau từ thư mục chứa file docker-compose.yml
:
docker-compose down
Phản hồi sẽ tương tự như sau:
Stopping biz_waweb_1 ... done Stopping biz_wacore_1 ... done Stopping biz_db_1 ... done Removing biz_waweb_1 ... done Removing biz_wacore_1 ... done Removing biz_db_1 ... done
Để loại bỏ tất cả dung lượng được xác định trong file docker-compose.yml
ngoài vùng chứa, hãy chạy lệnh down
bằng thông số -v
:
docker-compose down -v
Bạn nên sử dụng WADebug để khắc phục sự cố hiệu quả hơn. WADebug là công cụ dòng lệnh dùng để phát hiện sự cố tiềm ẩn khi thiết lập API WhatsApp Business, đồng thời để việc yêu cầu trợ giúp từ dịch vụ hỗ trợ WhatsApp trở nên hiệu quả hơn.
Trong trường hợp không thể sử dụng WADebug hoặc thao tác chạy công cụ này trả về lỗi, để thu thập nhật ký từ mọi vùng chứa, hãy chạy lệnh sau:
docker-compose logs > debug_output.txt
Để thu thập nhật ký của một dịch vụ cụ thể, hãy thêm tên dịch vụ (waweb
hoặc wacore
) vào lệnh docker-compose logs
:
docker-compose logs waweb > debug_output.txt
Bạn có thể tìm nhật ký trong file debug_output.txt
ở thư mục hiện tại.
Phần mềm này sử dụng mã FFmpeg được cấp phép theo LGPLv2.1 và bạn có thể tải xuống nguồn của mã này tại đây.