เอกสารฉบับนี้จะแสดงวิธีตั้งค่าอินสแตนซ์เดี่ยวของไคลเอ็นต์ WhatsApp Business API ในอุปกรณ์ของผู้พัฒนาเพื่อวัตถุประสงค์ด้านการทดสอบ
สำหรับการตั้งค่าการผลิต ให้ทำตามคำแนะนำที่เกี่ยวข้องซึ่งระบุในการตั้งค่าการผลิต
คุณจำเป็นต้องมีสิ่งต่อไปนี้:
ทำตามขั้นตอนต่อไปนี้เพื่ือติดตั้งอินสแตนซ์เดี่ยวของไคลเอ็นต์ WhatsApp Business API ในระบบของผู้พัฒนา
biz
สำหรับสคริปต์การตั้งค่าเรียกใช้โค้ดต่อไปนี้ในตำแหน่งที่คุณต้องการสำหรับไคลเอ็นต์ WhatsApp Business API:
mkdir ~/biz; cd ~/biz;
ไฟล์การกำหนดค่าสำหรับไคลเอ็นต์ WhatsApp Business API จะอยู่ในที่เก็บ WhatsApp-Business-API-Setup-Scripts GitHub คุณสามารถตั้งค่าไคลเอ็นต์ WhatsApp Business API ของคุณได้ด้วยอินสแตนซ์ฐานข้อมูล MySQL หรือ Postgres
docker-compose.yml
และ db.env
จากไดเรกทอรีการติดตั้งไปยังไดเรกทอรี ~/biz
ที่คุณสร้างในขั้นตอนที่ 1docker-compose.yml
และ db.env
จากไดเรกทอรีการติดตั้ง Postgres ไปยังไดเรกทอรี ~/biz
ที่คุณสร้างในขั้นตอนที่ 1WA_API_VERSION
ควรกำหนดตัวแปรสภาพแวดล้อมการใช้งาน WA_API_VERSION
ให้เป็นเวอร์ชั่นปัจจุบันโดยใช้:
export WA_API_VERSION=current-whatsapp-version
หากต้องการเริ่มใช้งานไคลเอ็นต์ WhatsApp Business API โดยมีคอนเทนเนอร์ฐานข้อมูล 1 รายการ คอนเทนเนอร์ Webapp 1 รายการ และคอนเทนเนอร์ Coreapp 1 รายการ ให้เรียกใช้:
docker-compose up -d
เอาต์พุตผลลัพธ์ควรมีลักษณะดังต่อไปนี้:
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
คุณสามารถตรวจสอบได้ว่าทุกคอนเทนเนอร์มีสถานะเป็น UP โดยเรียกใช้:
docker-compose ps
ตามค่าเริ่มต้น คอนเทนเนอร์ Webapp จะทำงานบนพอร์ต 9090
และคอนเทนเนอร์ฐานข้อมูลจะทำงานบนพอร์ต 33060
เอาต์พุตผลลัพธ์ควรมีลักษณะดังต่อไปนี้:
~/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
คุณสามารถดาวน์โหลดและกำหนดค่าคอลเลกชั่น Postman ของเราเพื่อโต้ตอบกับ WhatsApp Business API หากคุณไม่ต้องการใช้บรรทัดคำสั่ง
คุณสามารถดำเนินการตรวจสอบไคลเอ็นต์ WhatsApp Business API โดยใช้การเรียก API ไปยังโหนด health
เอาต์พุตผลลัพธ์ควรมีลักษณะดังต่อไปนี้:
{ "health": { "gateway_status": "unregistered" } }
การตอบกลับจะแสดง gateway_status
ของ unregistered
ว่าเป็น gateway_status
เนื่องจากยังไม่ได้ลงทะเบียนไคลเอนต์ WhatsApp Business API
คุณสามารถลงทะเบียนไคลเอ็นต์ WhatsApp Business API ของคุณได้โดยใช้การเรียก API ไปยังโหนด account
ดำเนินการตรวจสอบไคลเอ็นต์ WhatsApp Business API อีกครั้งโดยใช้การเรียก API ไปยังโหนด health
หลังจากลงทะเบียนเสร็จสิ้น
เอาต์พุตผลลัพธ์ควรมีลักษณะดังต่อไปนี้:
{ "health": { "gateway_status": "connected" } }
gateway_status
ของ connected
หมายความว่า คอนเทนเนอร์ Coreapp สามารถเชื่อมต่อกับเซิร์ฟเวอร์ WhatsApp เพื่อตรวจสอบผู้ติดต่อและส่งข้อความได้
ระบบจะหยุดทำงานในระหว่างกระบวนการอัพเกรด
ขอแนะนำเป็นอย่างยิ่งให้สำรองข้อมูลการตั้งค่าแอพพลิเคชั่นปัจจุบันของคุณก่อนอัพเกรดเพื่อให้มั่นใจว่าคุณจะกลับมาทำงานได้ตามปกติอย่างรวดเร็ว โปรดปฏิบัติตามเอกสารประกอบเกี่ยวกับการสำรองและกู้คืนข้อมูล
เราขอแนะนำให้อัพเกรดเป็นประจำในช่วงเวลาที่มีปริมาณงานน้อยที่สุด
WA_API_VERSION
เป็นเวอร์ชั่นใหม่ควรอัพเดตตัวแปรสภาพแวดล้อมการใช้งาน WA_API_VERSION
เป็นหมายเลขเวอร์ชั่นใหม่โดยใช้:
export WA_API_VERSION=new-whatsapp-version
รีสตาร์ทคอนเทนเนอร์ Docker โดยเรียกใช้:
docker-compose up -d
เอาต์พุตผลลัพธ์ควรมีลักษณะดังต่อไปนี้:
biz_db_1 is up-to-date Recreating biz_wacore_1 ... done Recreating biz_waweb_1 ... done
v2.23.x
ขึ้นไปตอนนี้คุณสามารถใช้บริการอัพเกรดฐานข้อมูลที่ทำให้คุณสามารถอัพเกรดฐานข้อมูลได้ขณะที่แอพพลิเคชั่นยังคงทำงานอยู่เพื่อหลีกเลี่ยงการหยุดทำงาน
ไฟล์ dbupgrade-compose.yml มีช่องที่ระบุเวอร์ชั่นของคอนเทนเนอร์
ตัวอย่าง:
services: dbupgrade: image: docker.whatsapp.biz/coreapp:v${WA_API_VERSION:-2.21.3}
หากต้องการอัพเกรดการติดตั้ง ให้เริ่มใช้งานคอนเทนเนอร์ dbupgrade-service โดยตั้งค่าตัวแปรสภาพแวดล้อมการใช้งาน WA_API_VERSION
เป็นเวอร์ชั่นล่าสุด:
WA_API_VERSION=new-whatsapp-version docker-compose -f dbupgrade-compose.yml up -d
หมายเหตุ: หากคุณกำลังใช้กระบวนการปฏิบัติที่รีสตาร์ทคอนเทนเนอร์เมื่อออก โดยไม่ว่าจะใช้รหัสการออกใดก็ตาม ให้เริ่มต้นบริการโดยกำหนดตัวแปรสภาพแวดล้อมการใช้งาน EXIT_ON_SUCCESS
เป็น FALSE
เพื่อหลีกเลี่ยงการออกจากคอนเทนเนอร์เมื่อรหัสการออกเป็น 0
หากการอัพเกรดฐานข้อมูลสำเร็จ คอนเทนเนอร์จะออกโดยใช้รหัส 0
คุณสามารถใช้คำสั่ง Docker ต่อไปนี้เพื่อติดตามสถานะได้:
docker wait your-database-upgrade-container-name
ขั้นตอนนี้จะส่งเอาต์พุตรหัสการออกของคอนเทนเนอร์ dbupgrade-service
รีสตาร์ทคอนเทนเนอร์ Docker ของ Coreapp และ Webapp โดยกำหนดตัวแปรสภาพแวดล้อมการใช้งาน WA_API_VERSION
เป็นเวอร์ชั่นล่าสุด:
WA_API_VERSION=new-whatsapp-version docker-compose up -d
ขอแนะนำเป็นอย่างยิ่งให้สำรองข้อมูลการตั้งค่าแอพพลิเคชั่นในปัจจุบันของคุณไว้ก่อนที่จะถอนการติดตั้ง โปรดปฏิบัติตามเอกสารประกอบเกี่ยวกับการสำรองและกู้คืนข้อมูล
หากคุณต้องการรีเซ็ตสภาพแวดล้อมการพัฒนาของคุณโดยการลบคอนเทนเนอร์ทั้งหมด ให้เรียกใช้คำสั่งต่อไปนี้จากไดเรกทอรีที่มีไฟล์ docker-compose.yml
:
docker-compose down
เอาต์พุตผลลัพธ์ควรมีลักษณะดังต่อไปนี้:
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
เพื่อกำจัดปริมาณข้อมูลทั้งหมดที่กำหนดไว้ในไฟล์ docker-compose.yml
นอกเหนือจากคอนเทนเนอร์ ให้เรียกใช้คำสั่ง down
ด้วยพารามิเตอร์ -v
:
docker-compose down -v
เราขอแนะนำให้ใช้ WADebug เพื่อการแก้ไขปัญหาที่มีประสิทธิภาพมากขึ้น WADebug คือเครื่องมือบรรทัดคำสั่งเพื่อช่วยในการค้นหาปัญหาที่อาจเกิดขึ้นกับการตั้งค่า WhatsApp Business API และช่วยทำให้การส่งคำขอรับความช่วยเหลือจากฝ่ายสนับสนุนของ WhatsApp มีประสิทธิภาพมากขึ้น
ในกรณีที่ไม่สามารถใช้ WADebug ได้หรือการเรียกใช้เครื่องมือทำให้ได้ข้อผิดพลาดกลับมา ให้เรียกใช้คำสั่งต่อไปนี้เพื่อจะรวบรวมบันทึกจากคอนเทนเนอร์ทั้งหมด:
docker-compose logs > debug_output.txt
หากต้องการรวบรวมบันทึกของบริการใดบริการหนึ่งโดยเฉพาะ ให้ใส่ชื่อของบริการนั้นๆ (waweb
หรือ wacore
) ต่อท้ายคำสั่ง docker-compose logs
:
docker-compose logs waweb > debug_output.txt
คุณสามารถหาบันทึกได้ในไฟล์ debug_output.txt
ในไดเรกทอรีปัจจุบัน
ซอฟต์แวร์นี้จะใช้รหัสของ FFmpeg ซึ่งได้รับสิทธิ์การใช้งานภายใต้ LGPLv2.1 และคุณสามารถดาวน์โหลดแหล่งที่มาได้ที่นี่