인터랙티브 메시지 템플릿에서는 표준 메시지 템플릿과 미디어 메시지 템플릿 유형 외에도 components
개체를 사용하는 인터랙티브 버튼을 포함하도록 수신자에게 보낼 수 있는 콘텐츠가 확대됩니다.
사전 정의된 버튼은 다음의 두 가지 유형이 제공됩니다.
이들 버튼은 문자 메시지나 미디어 메시지에 첨부할 수 있습니다. 인터랙티브 메시지 템플릿을 만들고 승인하고 나면, 이를 알림 메시지 및 고객 서비스/관리 메시지에 사용할 수 있습니다.
다음과 같은 작업을 수행해야 합니다.
메시지 템플릿이 승인되면 API를 사용하여 메시지를 보낼 수 있습니다.
/messages
로 POST
요청 보내기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" } ] } ] } }
성공적인 응답에는 id
가 있는 messages
개체가 포함됩니다.
{ "messages": [{ "id": "gBEGkYiEB1VXAglK1ZEqA1YKPrU" }] }
실패한 응답에는 오류 문자열, 오류 코드 및 기타 정보가 있는 오류 개체가 포함됩니다.
템플릿을 수신할 수 없는 계정으로 템플릿을 보내는 경우 구성된 Webhook 서버에 오류 개체의 1026 (ReceiverIncapable)
오류가 전송됩니다.
오류에 대한 자세한 내용은 오류 및 상태 코드를 참조하세요.
사용자가 빠른 답장 버튼을 클릭하면 응답이 비즈니스로 다시 전송됩니다. 자세한 내용은 빠른 답장 버튼 클릭 시 콜백을 참조하세요. 또한 사용자는 버튼을 클릭하지 않고 자유 양식 메시지를 보낼 수도 있습니다.
{ "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": [ { ... } ] }
이 예시에서는 비즈니스 관리자에서 템플릿을 만들고 API 호출을 통해 메시지 템플릿을 messages
엔드포인트에 보내는 인터랙티브 메시지 템플릿의 설정 과정을 보여줍니다.
이 예시에서는 빠른 답장 버튼이 포함된 인터랙티브 미디어 메시지 템플릿을 만드는 방법을 보여줍니다.
messages
API 호출이 매개변수 정보에 추가됩니다.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" } ] } ] } }
이 예시에서는 URL과 전화번호 버튼이 포함된 인터랙티브 미디어 메시지 템플릿을 만드는 방법을 보여줍니다.
messages
API 호출이 매개변수 정보에 추가됩니다.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" } ] } ] } }