Webhooks ช่วยให้คุณได้รับการแจ้งเตือน HTTP แบบเรียลไทม์เมื่อมีการเปลี่ยนแปลงเกิดขึ้นกับอ็อบเจ็กต์ที่เฉพาะเจาะจง ตัวอย่างเช่น เราอาจส่งการแจ้งเตือนให้คุณเมื่อผู้ใช้ส่งข้อความถึงคุณหรือเมื่อเทมเพลตข้อความมีสถานะเปลี่ยนแปลงไป ซึ่งช่วยให้คุณไม่ต้องสืบค้น API เพื่อดูการเปลี่ยนแปลงต่ออ็อบเจ็กต์ต่างๆ ที่อาจเกิดขึ้นแล้วหรือไม่ก็ได้ ทั้งยังช่วยให้คุณหลีกเลี่ยงการใช้งานจนถึงขีดจำกัดอัตราอีกด้วย
เอกสารนี้จะให้ภาพรวมเกี่ยวกับ Webhooks และใช้ได้กับ API การจัดการ WhatsApp Business, Cloud API ของแพลตฟอร์ม WhatsApp Business และ On-Premises API ของแพลตฟอร์ม WhatsApp Business
API แต่ละรายการอาจมีอ็อบเจ็กต์อยู่หลายประเภท ดังนั้น เมื่อใดก็ตามที่คุณกำหนดค่า Webhook คุณจะต้องเลือกประเภทของอ็อบเจ็กต์เสียก่อน เนื่องจากอ็อบเจ็กต์ที่ต่างกันก็จะมีช่องต่างกัน คุณจึงต้องสมัครรับข้อมูลจากช่องที่เฉพาะเจาะจงสำหรับประเภทอ็อบเจ็กต์นั้นๆ เมื่อช่องอ็อบเจ็กต์ใดๆ ที่คุณสมัครรับข้อมูลไว้มีการเปลี่ยนแปลงค่า คุณก็จะได้รับการแจ้งเตือน
ระบบจะส่งการแจ้งเตือนให้คุณในรูปแบบคำขอ HTTP POST และมีเพย์โหลด JSON ที่อธิบายการเปลี่ยนแปลงดังกล่าว
ตารางต่อไปนี้จะแสดงข้อมูลที่คุณสามารถรับจาก Webhooks ได้
API | อ็อบเจ็กต์ |
---|---|
Cloud API |
|
On-Premises API |
|
API การจัดการ WhatsApp Business |
|
ตัวอย่างต่อไปนี้แสดงถึงการแจ้งเตือน Webhook ที่คุณจะได้รับเมื่อผู้ใช้ส่งข้อความ SMS มาให้คุณ
ในกรณีที่เป็น Cloud API อ็อบเจ็กต์จะเป็น whatsapp_business_account
อยู่เสมอ แต่ field
จะเป็นตัวระบุถึงประเภทของข้อมูลที่ส่ง
{ "object": "whatsapp_business_account", "entry": [{ "id": "WHATSAPP_BUSINESS_ACCOUNT_ID", "changes": [{ "value": { "messaging_product": "whatsapp", "metadata": { "display_phone_number": PHONE_NUMBER, "phone_number_id": PHONE_NUMBER_ID }, "contacts": [{ "profile": { "name": "NAME" }, "wa_id": PHONE_NUMBER }], "messages": [{ "from": PHONE_NUMBER, "id": "wamid.ID", "timestamp": TIMESTAMP, "text": { "body": "MESSAGE_BODY" }, "type": "text" }] }, "field": "messages" }] }] }
ในกรณีที่เป็น On-Premises API อ็อบเจ็กต์จะเป็น contacts
และ messages
, errors
หรือ statuses
และ pricing
เนื่องจากลูกค้าของคุณจะเป็นผู้ส่ง Webhook แทนที่จะเป็น Meta
{ "contacts": [{ "profile": { "name": "NAME" }, "wa_id": "WHATSAPP_BUSINESS_ACCOUNT_ID" }], "messages":[{ "from": "PHONE_NUMBER", "id": "wamid.ID", "timestamp": "TIMESTAMP", "text": { "body": "MESSAGE_BODY" }, "type": "text" }] }
ระบบจะส่ง Webhooks ทั้งหมดโดยใช้ HTTPS ดังนั้นเซิร์ฟเวอร์ของคุณจึงต้องสามารถรับและประมวลผลคำขอ HTTPS ได้ และต้องมีใบรับรอง TLS/SSL ที่ถูกต้องติดตั้งไว้ โดยระบบจะไม่รองรับใบรับรองที่ลงนามเอง
เรียนรู้เพิ่มเติมเกี่ยวกับ Webhooks สำหรับ API ที่เฉพาะเจาะจง