Ngoài mẫu tin nhắn tiêu chuẩn và các loại mẫu tin nhắn có chứa file phương tiện, bạn có thể dùng đối tượng components
để gửi cho người nhận những mẫu tin nhắn tương tác có nút tương tác.
Có 2 loại nút được xác định trước:
Bạn có thể đính kèm các nút này vào tin nhắn văn bản hoặc tin nhắn có chứa file phương tiện. Sau khi các mẫu tin nhắn tương tác của bạn được tạo và phê duyệt, bạn có thể dùng những mẫu này trong tin nhắn thông báo cũng như tin nhắn dịch vụ/chăm sóc khách hàng.
Bạn cần:
Sau khi mẫu tin nhắn được phê duyệt, bạn có thể sử dụng API để gửi tin nhắn.
POST
đến /messages
POST /v1/messages { "to": "recipient_wa_id", "type": "template", "template": { "namespace": "your-namespace", "language": { "policy": "deterministic", "code": "your-language-and-locale-code" }, "name": "your-template-name", "components": [ { "type" : "header", "parameters": [ { "type": "text", "text": "replacement_text" } ] # end header }, { "type" : "body", "parameters": [ { "type": "text", "text": "replacement_text" }, { "type": "currency", "currency" : { "fallback_value": "$100.99", "code": "USD", "amount_1000": 100990 } }, { "type": "date_time", "date_time" : { "fallback_value": "February 25, 1977", "day_of_week": 5, "day_of_month": 25, "year": 1977, "month": 2, "hour": 15, "minute": 33, #OR "timestamp": 1485470276 } }, { ... # Any additional template parameters } ] # end body }, # The following part of this code example includes several possible button types, # not all are required for an interactive message template API call. { "type": "button", "sub_type" : "quick_reply", "index": "0", "parameters": [ { "type": "payload", # Business Developer-defined payload "payload":"aGlzIHRoaXMgaXMgY29vZHNhc2phZHdpcXdlMGZoIGFTIEZISUQgV1FEV0RT" } ] }, { "type": "button", "sub_type" : "url", "index": "1", "parameters": [ { "type": "text", # Business Developer-defined dynamic URL suffix "text": "9rwnB8RbYmPF5t2Mn09x4h" } ] }, { "type": "button", "sub_type" : "url", "index": "2", "parameters": [ { "type": "text", # Business Developer-defined dynamic URL suffix "text": "ticket.pdf" } ] } ] } }
Nếu thành công, hệ thống sẽ trả về một đối tượng messages
chứa id
.
{ "messages": [{ "id": "gBEGkYiEB1VXAglK1ZEqA1YKPrU" }] }
Nếu không thành công, hệ thống sẽ trả về một phản hồi có chứa đối tượng lỗi bao gồm chuỗi lỗi, mã lỗi và các thông tin khác.
Nếu bạn gửi mẫu cho tài khoản không thể nhận mẫu này, máy chủ Webhook đã đặt cấu hình sẽ nhận được lỗi 1026 (ReceiverIncapable)
trong đối tượng lỗi.
Hãy xem phần Mã lỗi và mã trạng thái để biết thêm thông tin về lỗi.
Khi người dùng nhấp vào nút trả lời nhanh, hệ thống sẽ gửi trả lại phản hồi cho doanh nghiệp. Hãy xem phần Lệnh gọi lại khi nhấp vào nút trả lời nhanh để biết thông tin. Người dùng cũng có thể chọn không nhấp vào nút và chỉ gửi cho bạn tin nhắn dạng tự do.
{ "contacts": [ { "profile": { "name": "Kerry Fisher" }, "wa_id": "16505551234" } ], "messages": [ { "button": { "payload": "No-Button-Payload", "text": "No" }, "context": { "from": "16315558007", "id": "gBGGFmkiWVVPAgkgQkwi7IORac0" }, "from": "16505551234", "id": "ABGGFmkiWVVPAgo-sKD87hgxPHdF", "timestamp": "1591210827", "type": "button" } ] # If there are any errors, an errors field (array) will be present "errors": [ { ... } ] }
Các ví dụ này minh họa quy trình thiết lập mẫu tin nhắn tương tác, bắt đầu từ tạo mẫu trong Trình quản lý kinh doanh và gửi mẫu tin nhắn bằng lệnh gọi API đến điểm cuối messages
.
Ví dụ này minh họa quy trình tạo mẫu tin nhắn tương tác có chứa file phương tiện kèm theo nút trả lời nhanh.
messages
thêm vào thông tin về thông số.POST /v1/messages { "to": "your-test-recipient-wa-id", "recipient_type": "individual", "type": "template", "template": { "namespace": "88b39973_f0d5_54e1_29cf_e80f1e3da4f2", "name": "upcoming_trip_reminder", "language": { "code": "en", "policy": "deterministic" }, "components": [ { "type": "header", "parameters": [ { "type": "text", "text": "12/26" } ] }, { "type": "body", "parameters": [ { "type": "text", "text": "*Ski Trip*" }, { "type": "date_time", "date_time" : { "fallback_value": "29th July 2019, 8:00am", "day_of_month": "29", "year": "2019", "month": "7", "hour": "8", "minute": "00" } }, { "type": "text", "text": "*Squaw Valley Ski Resort, Tahoe*" } ] }, { "type": "button", "sub_type": "quick_reply", "index": 0, "parameters": [ { "type": "payload", "payload": "Yes-Button-Payload" } ] }, { "type": "button", "sub_type": "quick_reply", "index": 1, "parameters": [ { "type": "payload", "payload": "No-Button-Payload" } ] } ] } }
Ví dụ này minh họa quy trình tạo mẫu tin nhắn tương tác có chứa file phương tiện kèm theo URL và nút số điện thoại.
messages
thêm vào thông tin về thông số.POST /v1/messages { "to": "your-test-recipient-wa-id", "recipient_type": "individual", "type": "template", "template": { "namespace": "88b39973_f0d5_54e1_29cf_e80f1e3da4f2", "name": "oculus_shipment_update", "language": { "code": "en", "policy": "deterministic" }, "components": [ { "type": "header", "parameters": [{ "type": "image", "image": { "link": "link-to-your-image" } }] }, { "type": "body", "parameters": [ { "type": "text", "text": "Anand" }, { "type": "text", "text": "Quest" }, { "type": "text", "text": "113-0921387" }, { "type": "date_time", "date_time" : { "fallback_value": "23rd Nov 2019", "day_of_month": "20", "year": "2019", "month": "9" } } ] }, { "type": "button", "index": "0", "sub_type": "url", "parameters": [ { "type": "text", "text": "1Z999AA10123456784" } ] } ] } }