Thiết lập dành cho nhà phát triển: Một phiên bản

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.

Trước khi bắt đầu

Bạn cần có:

  • Docker Compose
  • Một tài khoản thử nghiệm được thiết lập trên hệ thống trong môi trường phát triển
    • Tài khoản này dùng để phát triển và thử nghiệm nhanh các bản mới phát hành.

Quá trình thiết lập ban đầu ứng dụng API WhatsApp Business

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.

Bước 1: Tạo thư mục biz cho các tập lệnh thiết lập

Chạy mã sau ở vị trí bạn muốn cho ứng dụng API WhatsApp Business:

mkdir ~/biz; cd ~/biz;

Bước 2: Tải file cấu hình ứng dụng API WhatsApp Business

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.

  • Để thiết lập với cơ sở dữ liệu MySQL, hãy sao chép các file cấu hình docker-compose.ymldb.env từ thư mục Cài đặt vào thư mục ~/biz mà bạn đã tạo ở Bước 1.
  • Để thiết lập với cơ sở dữ liệu Postgres, hãy sao chép các file cấu hình docker-compose.ymldb.env từ thư mục Cài đặt Postgres vào thư mục ~/biz mà bạn đã tạo ở Bước 1.

Bước 3: Đặt biến môi trường 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

Bước 4: Khởi động ứng dụng API WhatsApp Business

Để 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ước 5: Xác minh rằng vùng chứa đang chạy

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ước 6: Kiểm tra sự cố

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_statusunregistered dưới dạng gateway_status vì chưa đăng ký ứng dụng API WhatsApp Business.

Bước 7: Đă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.

Bước 8: Kiểm tra sự cố lần 2

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_statusconnected 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ạgửi tin nhắn.

Nâng cấp ứng dụng API WhatsApp Business

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.

Bước 1: Thay đổi biến môi trường WA_API_VERSION thành phiên bản mới

Bạ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

Bước 2: Khởi động lại các vùng chứa Docker

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

Đối với người dùng cơ sở dữ liệu MySQL nâng cấp lên v2.23.x trở lên

Giờ 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.

Bước 1: Tải file cấu hình xuố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}

Bước 2: Khởi động vùng chứa

Để 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.

Bước 3: Chờ quá trình nâng cấp hoàn tất

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.

Bước 4: Khởi động lại các vùng chứa Coreapp và Webapp

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

Gỡ cài đặt ứng dụng API WhatsApp Business

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

Khắc phục sự cố

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.