Với Webhooks, bạn có thể nhận được thông báo HTTP theo thời gian thực về những thay đổi đối với các đối tượng cụ thể. Ví dụ: chúng tôi có thể gửi thông báo khi người dùng gửi tin nhắn cho bạn hoặc khi trạng thái của một mẫu tin nhắn thay đổi. Nhờ vậy, bạn không phải truy vấn API của chúng tôi để biết các thay đổi đối với những đối tượng có thể đã hoặc chưa xảy ra. Đồng thời, bạn có thể tránh đạt đến giới hạn tốc độ.
Tài liệu này cung cấp thông tin tổng quan về Webhooks. Tài liệu áp dụng cho API Quản lý WhatsApp Business, API Đám mây của Nền tảng WhatsApp Business và API Tại chỗ của Nền tảng WhatsApp Business.
Mỗi API có thể có nhiều loại đối tượng. Vì vậy, bất cứ khi nào đặt cấu hình Webhook, trước tiên, bạn phải chọn một loại đối tượng. Vì mỗi đối tượng sẽ có những trường khác nhau nên bạn phải đăng ký các trường cụ thể cho loại đối tượng đó. Bạn sẽ nhận được thông báo mỗi khi có thay đổi đối với giá trị của bất kỳ trường đối tượng nào mà bạn đăng ký.
Thông báo được gửi cho bạn dưới dạng yêu cầu HTTP POST và chứa phần tải dữ liệu JSON mô tả thay đổi đó.
Bảng dưới đây trình bày những thông tin bạn có thể nhận được từ Webhooks.
API | Đối tượng |
---|---|
API Đám mây |
|
API Tại chỗ |
|
API Quản lý WhatsApp Business |
|
Các ví dụ dưới đây minh họa thông báo qua Webhook mà bạn nhận được khi người dùng gửi tin nhắn văn bản cho bạn.
Đối với API Đám mây, đối tượng luôn là whatsapp_business_account
, nhưng field
sẽ biểu thị loại thông tin được gửi.
{ "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" }] }] }
Đối với API Tại chỗ, vì máy khách của bạn đang gửi Webhook thay mặt cho Meta nên đối tượng sẽ là contacts
và messages
, errors
hoặc statuses
và pricing
.
{ "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" }] }
Mọi webhook đều được gửi bằng HTTPS nên máy chủ của bạn phải có khả năng nhận và xử lý các yêu cầu HTTPS, đồng thời phải cài đặt sẵn chứng chỉ TLS/SSL hợp lệ. Chứng chỉ tự ký không được hỗ trợ.
Tìm hiểu thêm về Webhooks cho một API cụ thể.