Webhooks

บัญชี WhatsApp Business (WABA) และองค์ประกอบของบัญชีเหล่านี้เป็นอ็อบเจ็กต์ในกราฟสังคมของ Facebook เมื่อเกิดเหตุการณ์ทริกเกอร์ขึ้นในอ็อบเจ็กต์หนึ่งจากอ็อบเจ็กต์ประเภทนี้ Facebook ก็จะพบเหตุการณ์ดังกล่าวและส่งการแจ้งเตือนไปยัง URL ของ Webhook ที่ระบุไว้ในแดชบอร์ดของแอพ Facebook ของคุณ

ในกรณีที่มีการสมัครใช้งานแบบฝัง คุณสามารถใช้ Webhooks เพื่อรับการแจ้งเตือนเมื่อมีการเปลี่ยนแปลงเกิดขึ้นกับ WABA, หมายเลขโทรศัพท์, เทมเพลตข้อความ และข้อความที่ส่งถึงหมายเลขโทรศัพท์ของคุณ

คุณจำเป็นต้องสมัครรับข้อมูลจาก WABA แต่ละบัญชีที่คุณต้องการรับ Webhooks หลังจากดึง WABA ID ของไคลเอ็นต์แล้ว ให้ใช้แอพของคุณสมัครรับข้อมูลจาก ID ดังกล่าวเพื่อเริ่มรับ Webhooks

ดูข้อมูลเพิ่มเติมเกี่ยวกับการสมัครรับข้อมูล Webhooks ได้ที่ Webhooks สำหรับบัญชี WhatsApp Business

สมัครรับข้อมูลบัญชี WhatsApp Business

ขั้นแรก ให้ตั้งค่าผลิตภัณฑ์ Webhooks สำหรับแอพของคุณดังนี้

  1. โหลดแอพของคุณในแดชบอร์ดของแอพ แล้วเพิ่มผลิตภัณฑ์ Webhooks หากคุณยังไม่ได้เพิ่มไว้
  2. คลิกที่ผลิตภัณฑ์ Webhooks ในเมนูทางด้านซ้าย
  3. เลือกบัญชี WhatsApp Business จากเมนูดร็อปดาวน์ จากนั้นคลิก "สมัครรับข้อมูลอ็อบเจ็กต์นี้"
  4. เพิ่ม URL การเรียกกลับของ Webhooks และโทเค็นการยืนยัน จากนั้นตรวจสอบยืนยัน แล้วบันทึกการเปลี่ยนแปลง

ดูข้อมูลเพิ่มเติมเกี่ยวกับการสมัครรับข้อมูล Webhooks ในแดชบอร์ดของแอพได้ที่การกำหนดค่าผลิตภัณฑ์ Webhooks

เมื่อคุณตั้งค่า Webhooks ในแผงควบคุมผลิตภัณฑ์ Webhooks เสร็จแล้ว ให้ส่งคำขอ POST ไปยังตำแหน่งข้อมูล subscribed_apps ในบัญชี WhatsApp Business ที่คุณต้องการรับ Webhooks

เมื่อต้องการหา ID ของบัญชี WhatsApp Business ให้ไปที่ตัวจัดการธุรกิจ > การตั้งค่าธุรกิจ > บัญชี > บัญชี WhatsApp Business ค้นหาบัญชีที่คุณต้องการใช้แล้วคลิกที่บัญชีนั้น แผงควบคุมจะเปิดขึ้นมา โดยมีข้อมูลเกี่ยวกับบัญชี ซึ่งรวมถึง ID อยู่

โดยใส่โทเค็นการเข้าถึงของผู้ใช้ระบบของคุณไว้ในส่วนหัวของคำขอ และตามด้วย 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 การเรียกกลับ

เรียกดูการสมัครรับข้อมูลทั้งหมดสำหรับ WABA

หากต้องการเรียกดูรายการแอพที่สมัครรับข้อมูล 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"
      }
    }
  ]
}

ยกเลิกการสมัครรับข้อมูลจาก WABA

หากต้องการยกเลิกการสมัครรับข้อมูล 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
}

การแทนที่ URL การเรียกกลับ

ดูการแทนที่ Webhooks

ตั้งค่าการแจ้งเตือน

คุณสามารถตั้งค่าให้ Webhooks ส่งการแจ้งเตือนถึงคุณเมื่อมีการเปลี่ยนแปลงในบัญชี WhatsApp Business ที่คุณสมัครรับข้อมูลไว้ ประเภทของการแจ้งเตือนที่คุณสามารถสมัครรับข้อมูลได้มีดังนี้

ช่องการสมัครรับข้อมูลที่ใช้ได้

ช่องการสมัครรับข้อมูลที่มีให้

ชื่อช่อง คำอธิบาย

account_review_update

ระบบจะส่งการแจ้งเตือนให้คุณเมื่อมีการตรวจสอบบัญชี WhatsApp Business

account_update

ระบบจะส่งการแจ้งเตือนให้คุณเมื่อมีการเปลี่ยนแปลงกับบัญชี WhatsApp Business ของคุณ การเปลี่ยนแปลงนี้อาจรวมถึงการอัพเดตหมายเลขโทรศัพท์ การละเมิดนโยบาย การแบนบัญชี WhatsApp Business และอื่นๆ อีกมากมาย

business_capability_update

ระบบจะส่งการแจ้งเตือนให้คุณเมื่อมีการอัพเดตความสามารถ ซึ่งอาจรวมถึงการเปลี่ยนแปลงจำนวนหมายเลขโทรศัพท์สูงสุดที่ WABA สามารถมีได้ หรือจำนวนสูงสุดของการสนทนาต่อ 1 หมายเลขโทรศัพท์

message_template_status_update

ระบบจะส่งการแจ้งเตือนให้คุณเมื่อเทมเพลตข้อความได้รับการอนุมัติหรือถูกปฏิเสธ หรือในกรณีที่เทมเพลตข้อความถูกปิดใช้งาน

messages

ระบบจะส่งการแจ้งเตือนถึงคุณเมื่อธุรกิจของคุณได้รับข้อความจากลูกค้า เมื่อคุณส่งข้อความถึงลูกค้า เมื่อข้อความส่งถึงลูกค้า และเมื่อลูกค้าอ่านข้อความ

phone_number_name_update

ระบบจะส่งการแจ้งเตือนให้คุณเมื่อชื่อที่เกี่ยวข้องกับหมายเลขโทรศัพท์ได้รับการอนุมัติหรือถูกปฏิเสธ

phone_number_quality_update

ระบบจะส่งการแจ้งเตือนให้คุณเมื่อสถานะที่เกี่ยวกับคุณภาพของหมายเลขโทรศัพท์มีการอัพเดต

security

ระบบจะส่งการแจ้งเตือนให้คุณในกรณีต่อไปนี้

  • คุณขอให้ปิดใช้งานรหัสยืนยันแบบ 2 ขั้นตอน
  • มีการปิดใช้งานรหัสยืนยันแบบ 2 ขั้นตอน
  • มีการอัพเดตรหัสยืนยันแบบ 2 ขั้นตอน
  • โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับช่องเพย์โหลดแต่ละช่องที่เอกสารอ้างอิงเกี่ยวกับ Webhooks ของบัญชี WhatsApp Business และดูข้อมูลเพิ่มเติมเกี่ยวกับการแจ้งเตือน messages ประเภทต่างๆ ที่คุณอาจได้รับที่เอกสารอ้างอิงเกี่ยวกับ Webhooks ของ API ระบบคลาวด์ของ WhatsApp

    ดูข้อมูลเพิ่มเติมได้ที่เอกสารเกี่ยวกับ Webhooks สำหรับบัญชี WhatsApp Business

    รูปแบบ Webhooks

    คุณจะได้รับการแจ้งเตือนในรูปแบบทั่วไปต่อไปนี้

    {
      "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"
              }
            }
          ]
        }
      ]
    }
    

    การอัพเดต WABA

    หมายเลขแซนด์บ็อกซ์ได้รับการอัพเกรดเป็นบัญชีที่ตรวจสอบยืนยันแล้ว

    {
      "object": "whatsapp_business_account",
      "entry": [
        {
          "id": "whatsapp-business-account-id",
          "time": 1604703058,
          "changes": [
            {
              "field": "account_update",
              "value": {
                "phone_number": "16505551111",
                "event": "VERIFIED_ACCOUNT"
              }
            }
          ]
        }
      ]
    }
    
    

    บัญชี WhatsApp Business ถูกระงับการใช้งาน

    {
      "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"
                }
              }
            }
          ]
        }
      ]
    }
    

    การตรวจสอบบัญชี WhatsApp Business เสร็จเรียบร้อยแล้ว

    {
      "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 
             }
           }
          ]
        }
      ]
    }