บัญชี WhatsApp Business (WABA) และองค์ประกอบของบัญชีเหล่านี้เป็นอ็อบเจ็กต์ในกราฟสังคมของ Facebook เมื่อเกิดเหตุการณ์ทริกเกอร์ขึ้นในอ็อบเจ็กต์หนึ่งจากอ็อบเจ็กต์ประเภทนี้ Facebook ก็จะพบเหตุการณ์ดังกล่าวและส่งการแจ้งเตือนไปยัง URL ของ Webhook ที่ระบุไว้ในแดชบอร์ดของแอพ Facebook ของคุณ
ในกรณีที่มีการสมัครใช้งานแบบฝัง คุณสามารถใช้ Webhooks เพื่อรับการแจ้งเตือนเมื่อมีการเปลี่ยนแปลงเกิดขึ้นกับ WABA, หมายเลขโทรศัพท์, เทมเพลตข้อความ และข้อความที่ส่งถึงหมายเลขโทรศัพท์ของคุณ
คุณจำเป็นต้องสมัครรับข้อมูลจาก WABA แต่ละบัญชีที่คุณต้องการรับ Webhooks หลังจากดึง WABA ID ของไคลเอ็นต์แล้ว ให้ใช้แอพของคุณสมัครรับข้อมูลจาก ID ดังกล่าวเพื่อเริ่มรับ Webhooks
ดูข้อมูลเพิ่มเติมเกี่ยวกับการสมัครรับข้อมูล Webhooks ได้ที่ Webhooks สำหรับบัญชี WhatsApp Business
ขั้นแรก ให้ตั้งค่าผลิตภัณฑ์ Webhooks สำหรับแอพของคุณดังนี้
ดูข้อมูลเพิ่มเติมเกี่ยวกับการสมัครรับข้อมูล Webhooks ในแดชบอร์ดของแอพได้ที่การกำหนดค่าผลิตภัณฑ์ Webhooks
เมื่อคุณตั้งค่า Webhooks ในแผงควบคุมผลิตภัณฑ์ Webhooks เสร็จแล้ว ให้ส่งคำขอ POST ไปยังตำแหน่งข้อมูล subscribed_apps
ในบัญชี WhatsApp Business ที่คุณต้องการรับ Webhooks
โดยใส่โทเค็นการเข้าถึงของผู้ใช้ระบบของคุณไว้ในส่วนหัวของคำขอ และตามด้วย Authorization: Bearer
สำหรับวิธีสร้างโทเค็นการเข้าถึงของผู้ใช้ระบบ โปรดดูผู้ใช้ระบบ, ติดตั้งแอพและสร้างโทเค็น
POST https://graph.facebook.com/<API_VERSION>/<WABA_ID>/subscribed_apps
curl -X POST \
'https://graph.facebook.com/v19.0
/102289599326934/subscribed_apps' \
-H 'Authorization: Bearer EAAJi...'
{ "success" : true }
ตอนนี้แอพของคุณ (ระบุจากโทเค็นการเข้าถึงของผู้ใช้ระบบ) น่าจะได้รับการแจ้งเตือน Webhooks ที่ระบุข้อมูลการเปลี่ยนแปลงที่เกิดขึ้นกับบัญชี WhatsApp Business แล้ว
ทำตามขั้นตอนนี้ซ้ำกับ WABA อื่นที่คุณต้องการรับการแจ้งเตือน Webhooks โปรดทราบว่าหากคุณสมัครรับข้อมูล Webhooks สำหรับ WABA หลายบัญชีให้แอพของคุณ ระบบจะส่งการแจ้งเตือน Webhooks ทั้งหมดไปยัง URL การเรียกกลับของแอพที่ระบุไว้ในแผงควบคุมผลิตภัณฑ์ Webhooks ในแดชบอร์ดของแอพ
หากคุณต้องการใช้ URL การเรียกกลับที่ไม่เหมือนกันกับ WABA แต่ละบัญชี คุณต้องสร้างแอพสำหรับ WABA แต่ละบัญชีแยกจากกัน โดยให้แต่ละแอพมี URL การเรียกกลับเป็นของตนเอง และดำเนินการสืบค้นข้างต้นกับ WABA แต่ละบัญชีโดยใช้โทเค็นการเข้าถึงของผู้ใช้สำหรับแต่ละแอพ หรือถ้าคุณต้องการใช้เพียงแอพเดียว คุณสามารถแทนที่ URL การเรียกกลับได้เมื่อสมัครรับข้อมูล Webhooks สำหรับ WABA แต่ละบัญชี โปรดดูการแทนที่ URL การเรียกกลับ
หากต้องการเรียกดูรายการแอพที่สมัครรับข้อมูล Webhooks สำหรับ WABA ให้ส่งคำขอ GET ไปยังตำแหน่งข้อมูล subscribed_apps
ใน WABA ดังที่แสดงด้านล่างนี้
GET https://graph.facebook.com/<API_VERSION>/<WABA_ID>/subscribed_apps
การตอบกลับที่สำเร็จจะมีอาร์เรย์ของแอพต่างๆ ที่สมัครรับข้อมูล WABA นี้ พร้อมด้วยคุณสมบัติ link, name และ id สำหรับแต่ละแอพ
curl \
'https://graph.facebook.com/v19.0
/102289599326934/subscribed_apps' \
-H 'Authorization: Bearer EAAJi...'
{ "data" : [ { "whatsapp_business_api_data" : { "id" : "67084...", "link" : "https://www.facebook.com/games/?app_id=67084...", "name" : "Jaspers Market" } }, { "whatsapp_business_api_data" : { "id" : "52565...", "link" : "https://www.facebook.com/games/?app_id=52565...", "name" : "Jaspers Fresh Finds" } } ] }
หากต้องการยกเลิกการสมัครรับข้อมูล Webhooks สำหรับบัญชี WhatsApp Business ให้แอพของคุณ คุณสามารถส่งคำขอ DELETE ไปยังตำแหน่งข้อมูล subscribed_apps
ใน WABA ได้
DELETE https://graph.facebook.com/<API_VERSION>/<WABA_ID>/subscribed_apps
curl -X DELETE \
'https://graph.facebook.com/v19.0
/102289599326934/subscribed_apps' \
-H 'Authorization: Bearer EAAJi...'
{ "success" : true }
คุณสามารถตั้งค่าให้ Webhooks ส่งการแจ้งเตือนถึงคุณเมื่อมีการเปลี่ยนแปลงในบัญชี WhatsApp Business ที่คุณสมัครรับข้อมูลไว้ ประเภทของการแจ้งเตือนที่คุณสามารถสมัครรับข้อมูลได้มีดังนี้
ชื่อช่อง | คำอธิบาย |
---|---|
| ระบบจะส่งการแจ้งเตือนให้คุณเมื่อมีการตรวจสอบบัญชี WhatsApp Business |
| ระบบจะส่งการแจ้งเตือนให้คุณเมื่อมีการเปลี่ยนแปลงกับบัญชี WhatsApp Business ของคุณ การเปลี่ยนแปลงนี้อาจรวมถึงการอัพเดตหมายเลขโทรศัพท์ การละเมิดนโยบาย การแบนบัญชี WhatsApp Business และอื่นๆ อีกมากมาย |
| ระบบจะส่งการแจ้งเตือนให้คุณเมื่อมีการอัพเดตความสามารถ ซึ่งอาจรวมถึงการเปลี่ยนแปลงจำนวนหมายเลขโทรศัพท์สูงสุดที่ WABA สามารถมีได้ หรือจำนวนสูงสุดของการสนทนาต่อ 1 หมายเลขโทรศัพท์ |
| ระบบจะส่งการแจ้งเตือนให้คุณเมื่อเทมเพลตข้อความได้รับการอนุมัติหรือถูกปฏิเสธ หรือในกรณีที่เทมเพลตข้อความถูกปิดใช้งาน |
| ระบบจะส่งการแจ้งเตือนถึงคุณเมื่อธุรกิจของคุณได้รับข้อความจากลูกค้า เมื่อคุณส่งข้อความถึงลูกค้า เมื่อข้อความส่งถึงลูกค้า และเมื่อลูกค้าอ่านข้อความ |
| ระบบจะส่งการแจ้งเตือนให้คุณเมื่อชื่อที่เกี่ยวข้องกับหมายเลขโทรศัพท์ได้รับการอนุมัติหรือถูกปฏิเสธ |
| ระบบจะส่งการแจ้งเตือนให้คุณเมื่อสถานะที่เกี่ยวกับคุณภาพของหมายเลขโทรศัพท์มีการอัพเดต |
| ระบบจะส่งการแจ้งเตือนให้คุณในกรณีต่อไปนี้ |
โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับช่องเพย์โหลดแต่ละช่องที่เอกสารอ้างอิงเกี่ยวกับ Webhooks ของบัญชี WhatsApp Business และดูข้อมูลเพิ่มเติมเกี่ยวกับการแจ้งเตือน messages
ประเภทต่างๆ ที่คุณอาจได้รับที่เอกสารอ้างอิงเกี่ยวกับ Webhooks ของ API ระบบคลาวด์ของ WhatsApp
ดูข้อมูลเพิ่มเติมได้ที่เอกสารเกี่ยวกับ Webhooks สำหรับบัญชี WhatsApp Business
คุณจะได้รับการแจ้งเตือนในรูปแบบทั่วไปต่อไปนี้
{ "object": "whatsapp_business_account", "entry": [ { // entry object, containing changes "changes": [ { // changes object, containing value "value": { // value object } } ] } ] }
โปรดดูรายละเอียดเพิ่มเติมเกี่ยวกับแต่ละช่องต่อไปนี้
{ "object": "whatsapp_business_account", "entry": [ { "id": "waba-id", "time": 1608243053, "changes": [ { "field": "phone_number_name_update", "value": { "display_phone_number": "16505551111", "decision": "APPROVED", "requested_verified_name": "WhatsApp", "rejection_reason": null } } ] } ] }
{ "object": "whatsapp_business_account", "entry": [ { "id": "waba-id", "time": 1608243062, "changes": [ { "field": "phone_number_quality_update", "value": { "display_phone_number": "16505551111", "event": "FLAGGED", "current_limit": "TIER_10K" } } ] } ] }
{ "object": "whatsapp_business_account", "entry": [ { "id": "whatsapp-business-account-id", "time": 1604703058, "changes": [ { "field": "account_update", "value": { "phone_number": "16505551111", "event": "VERIFIED_ACCOUNT" } } ] } ] }
{ "object": "whatsapp_business_account", "entry": [ { "id": "whatsapp-business-account-id", "time": 1604703058, "changes": [ { "field": "account_update", "value": { "event": "DISABLED_UPDATE" "ban_info": { "waba_ban_state": ["SCHEDULE_FOR_DISABLE", "DISABLE", "REINSTATE"], "waba_ban_date": "January 31, 2021" } } } ] } ] }
{ "object": "whatsapp_business_account", "entry": [ { "id": "whatsapp-business-account-id", "time": 1604703141, "changes": [ { "field": "account_review_update", "value": { "decision": "APPROVED" } } ] } ] }
{ "object": "whatsapp_business_account", "entry": [ { "id": "whatsapp-business-account-id", "time": 1604703141, "changes": [ { "field": "message_template_status_update", "value": { "event": "APPROVED", "message_template_id": 1234567, "message_template_name": "My message template", "message_template_language": "en-US", "reason": null } } ] } ] }