인바운드 메시지를 받으면 앱 설정에 설정된 Webhooks URL로 알림이 전송됩니다. 이 문서에서는 수신할 수 있는 인바운드 메시지를 살펴보고 예시를 제공합니다.
수신된 메시지 알림은 다음과 같은 개체를 포함할 수 있습니다.
미디어가 포함된 메시지를 수신하면 WhatsApp Business API 클라이언트가 미디어를 다운로드합니다. 미디어가 다운로드되면 Webhooks로 알림이 전송됩니다. 이 알림에는 미디어 개체를 식별하여 해당 개체를 찾아서 가져올 수 있는 정보가 포함됩니다. 미디어의 id
와 함께 미디어 엔드포인트를 사용하여 미디어를 가져옵니다.
{ "contacts": [{ "profile": { "name": "Kerry Fisher" }, "wa_id": "16315551234" }], "messages":[{ "from": "16315551234", "id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf", "timestamp": "1518694235", "text": { "body": "Hello this is an answer" }, "type": "text" }] }
{ "contacts": [{ "profile": { "name": "Kerry Fisher" }, "wa_id": "16315551234" }], "messages":[{ "from":"16315551234", "id":"ABGGFlA5FpafAgo6tHcNmNjXmuSf", "location":{ "address":"Main Street Beach, Santa Cruz, CA", "latitude":38.9806263495, "longitude":-131.9428612257, "name":"Main Street Beach", "url":"https://foursquare.com/v/4d7031d35b5df7744"}, "timestamp":"1521497875", "type":"location" }] }
{ "contacts": [{ "profile": { "name": "Kerry Fisher" }, "wa_id": "16315551234" }], "messages": [{ "contacts": [{ "addresses": [{ "city": "Menlo Park", "country": "United States", "country_code": "us", "state": "CA", "street": "1 Hacker Way", "type": "WORK", "zip": "94025" }], "birthday": "2012-08-18", "emails": [{ "email": "kfish@fb.com", "type": "WORK" }], "ims": [{ "service": "AIM", "user_id": "kfish" }], "name": { "first_name": "Kerry", "formatted_name": "Kerry Fisher", "last_name": "Fisher" }, "org": { "company": "Meta", "department": "WhatsApp" }, "phones": [{ "phone": "+1 (940) 555-1234", "type": "CELL" }, { "phone": "+1 (650) 555-1234", "type": "WORK", "wa_id": "16505551234" }], "urls": [{ "url": "https://www.facebook.com", "type": "WORK" }] }], "from": "16505551234", "id": "ABGGFlA4dSRvAgo6C4Z53hMh1ugR", "timestamp": "1537248012", "type": "contacts" }] }
소비자 클라이언트가 iPhone을 사용할 경우 contact_image
설정은 비어 있습니다.
이미지를 포함한 메시지:
{ "messages": [{ "from": "16315551234", "id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf", "image": { "file": "/usr/local/wamedia/shared/b1cf38-8734-4ad3-b4a1-ef0c10d0d683", "id": "b1c68f38-8734-4ad3-b4a1-ef0c10d683", "mime_type": "image/jpeg", "sha256": "29ed500fa64eb55fc19dc4124acb300e5dcc54a0f822a301ae99944db", "caption": "Check out my new phone!", "status": "downloaded" }, "timestamp": "1521497954", "type": "image" }] }
2.49.1
버전부터 미디어 메시지 Webhooks에는 수신된 메시지의 상태와 ID가 포함됩니다.
상태 | 설명 |
---|---|
| 미디어가 다운로드되었습니다. |
| 미디어가 다운로드되지 않았지만 재시도 엔드포인트를 사용하여 다운로드를 다시 시도할 수 있습니다. |
| 미디어가 다운로드되지 않았을 수 있습니다. |
미디어 메시지에서 caption
필드는 선택 사항입니다. 사용자가 캡션을 설정한 경우에만 포함됩니다.
문서를 포함한 메시지:
{ "messages": [{ "from": "16315551234", "id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf", "timestamp": "1522189546", "type": "document", "document": { "caption": "80skaraokesonglistartist", "file": "/usr/local/wamedia/shared/fc233119-733f-49c-bcbd-b2f68f798e33", "id": "fc233119-733f-49c-bcbd-b2f68f798e33", "mime_type": "application/pdf", "sha256": "3b11fa6ef2bde1dd14726e09d3edaf782120919d06f6484f32d5d5caa4b8e", "status": "downloaded" } }] }
음성 메시지:
{ "messages":[{ "from": "16315551234", "id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf", "timestamp": "1521827831", "type": "voice", "voice": { "file": "/usr/local/wamedia/shared/463e/b7ec/ff4e4d9bb1101879cbd411b2", "id": "463eb7ec-ff4e-4d9b-b110-1879cbd411b2", "mime_type": "audio/ogg; codecs=opus", "sha256": "fa9e1807d936b7cebe63654ea3a7912b1fa9479220258d823590521ef53b0710", "status": "downloaded" } }] }
스티커를 포함한 메시지:
{ "messages":[{ "from": "16315551234", "id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf", "timestamp": "1521827831", "type": "sticker", "sticker": { "id": "b1c68f38-8734-4ad3-b4a1-ef0c10d683", "metadata": { "sticker-pack-id": "463eb7ec-ff4e-4d9b-b110-1879cbd411b2", "sticker-pack-name" : "Happy New Year", "sticker-pack-publisher" : "Kerry Fisher", "emojis": ["🐥", "😃"], "ios-app-store-link" : "https://apps.apple.com/app/id3133333", "android-app-store-link" : "https://play.google.com/store/apps/details?id=com.example", "is-first-party-sticker" : 0 | 1 # integer }, "mime_type": "image/webp", "sha256": "fa9e1807d936b7cebe63654ea3a7912b1fa9479220258d823590521ef53b0710" } }] }
{ "messages":[{ "from":"12345678", "id":"ABGGFlA5FpafAgo6tHcNmNjXmuSf", "image":{ "id":"b1c68f38-8734-4ad3-b4a1-ef0c10d683", "mime_type":"image/jpeg", "sha256":"29ed500fa64eb55fc19dc4124acb300e5dcca0f822a301ae99944db" "caption": "Check out my product!", }, "timestamp":"1521497954", "type":"image", "referral" : { "headline": "Our new product", "body" : "This is a great product", "source_type": "<SOURCE_TYPE>", "source_id": "<SOURCE_ID>", "source_url": "<SOURCE_URL>", //for the moment, this will always be a Facebook owned domain "video": { "id": "e144be57-12b1-4035-a520-703fcc87ef45", "ctwa_clid": "<CTWA_CLID>", } } }] }
referral
속성에 대한 자세한 내용을 참조하세요.
unknown
콜백 알림을 수신할 수 있습니다. 고객에게서 수신한 지원되지 않는 메시지 유형의 예는 다음과 같습니다.
{ "contacts": [{ "profile": { "name": "Kerry Fisher" }, "wa_id": "16315551234" }], "messages": [{ "errors": [{ "code": 501, "details": "Message type is not currently supported", "title": "Unknown message type" }], "from": "16315551234", "id": "ABGGFRBzFymPAgo6N9KKs7HsN6eB", "timestamp": "1531933468", "type": "unknown" }] }
수신된 메시지가 전달되었거나 자주 전달되는지 여부를 확인할 수 있습니다. 전달된 메시지에 대한 알림은 다음과 같습니다.
{ "contacts": [{ "profile": { "name": "Kerry Fisher" }, "wa_id": "16315551234" }], "messages": [{ "context": { "forwarded": true }, "from": "16315558011", "id": "ABGGFmkiWVVPAgo-sOGh7pv13wVJ", "text": { "body": "Party at Dotty's tonight!" }, "timestamp": "1593068329", "type": "text" }] }
자주 전달된 메시지에 대한 알림은 다음과 같습니다.
{ "contacts": [{ "profile": { "name": "Kerry Fisher" }, "wa_id": "16315551234" }], "messages": [{ "context": { "frequently_forwarded": true }, "from": "16315558011", "id": "ABGGFmkiWVVPAgo-sBTHfS3swNIl", "timestamp": "1593068225", "type": "video", "video": { "id": "e144be57-12b1-4035-a520-703fcc87ef45", "mime_type": "video/mp4", "sha256": "02c4e68a4f0d6af5ec6ef02120e20d15f520a4dd473b535abec1aab175c4e8b9" } }] }
show_security_notifications
매개변수가 앱 설정에서 true
로 설정된 경우 identity
개체에 포함된 사용자 신원에 대한 다음 정보가 모든 인바운드 메시지 알림에 포함됩니다.
{ "contacts": [{ "profile": { "name": "Kerry Fisher" }, "wa_id": "16315551234" }], "messages": [{ "from": "16315553601", "id": "ABGGFjFVU2AfAgo6V-Hc5eCgK5Gh", "identity": { "acknowledged": true, "created_timestamp": 1602532300000, "hash": "Sjvjlx8G6Z0=" }, "text": { "body": "Hi from new number 3601" }, "timestamp": "1602532300", "type": "text" }] }
{ "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": [ { ... } ] }
사용자는 WhatsApp에서 특정 메시지에 답장을 보낼 수 있습니다. 비즈니스가 메시지 답장의 컨텍스트를 이해할 수 있도록 context
개체를 포함합니다. 이 context
개체는 고객이 답장한 메시지의 id
, 원본 메시지를 보낸 사람의 WhatsApp ID, 고객이 언급할 수 있는 제품의 ID를 제공합니다.
메시지에 답장하기에 자세한 내용이 나와 있습니다.
비즈니스가 발송한 메시지에 답장을 보낸 인바운드 메시지의 예는 다음과 같습니다. 자세한 내용은 아래의 context
개체 섹션을 참조하세요.
{ "contacts": [ { "profile": { "name": "Kerry Fisher" }, "wa_id": "16315551234" } ], "messages":[{ "context":{ "from":"16315558011", "id":"ABGGFlA5FpafAgo6tHcNmNjXmuSf" }, "from":"16315551234", "id":"gBGGFlA5FpafAgkOuJbRq54qwbM", "text":{"body":"Yes, count me in!"}, "timestamp":"1521499915", "type":"text" }] }
미디어 메시지에서 text
필드는 선택 사항입니다. 이 필드가 있을 경우 text
값은 전송된 미디어의 캡션이며, 응답이 문자 메시지일 경우 응답 본문이 됩니다.
{ "messages": [ { "context": { "from": "sender_wa_id_of_context_message", "group_id": "group_id_of_context_message", "id": "message_id_of_context_message", "mentions": [ "wa_id1", "wa_id2" ] }, "from": "sender_wa_id", "group_id": "group_id", "id": "message_id", "timestamp": "message_timestamp", "type": "interactive", "interactive": { "type": "list_reply", "list_reply": { "title": "row-title-content-here", "id": "unique-row-identifier-here", "description": "row-description-content-here" } } }
{ "messages": [ { "context": { "from": "sender_wa_id_of_context_message", "group_id": "group_id_of_context_message", "id": "message_id_of_context_message", "mentions": [ "wa_id1", "wa_id2" ] }, "from": "sender_wa_id", "group_id": "group_id", "id": "message_id", "timestamp": "message_timestamp", "type": "interactive", "interactive": { "type": "button_reply", "button_reply": { "id": "unique-button-identifier", "title": "button-text" } } # end interactive node } # end message item ] # end messages array }
{ "contacts": [ { "profile": { "name": "customer-name" }, "wa_id": "customer-whatsapp-ID" } ], "messages": [ { "from": "customer-whatsapp-ID", "id": "message-ID", "text": { "body": "Can I get this in another color?" }, "context": { "referred_product": { "catalog_id": "catalog-ID", "product_retailer_id": "product-ID" } }, "timestamp": "message-received-timestamp", "type": "text" } ] }
{ "messages": [ { "from": "customer-whatsapp-id", "group_id": "group-id", "id": "message-ID", "timestamp": "message-timestamp", "type": "order" "order": { "catalog_id": "catalog_id", "product_items": [ { "product_retailer_id":"product-ID", "quantity":"number-of-items", "item_price":"unitary-price-of-item", "currency":"price-currency" }, ... ], "text":"text-message-sent-along-with-the-order" } } }
시스템 메시지는 어떤 이벤트가 발생하였을 때 시스템에서 생성합니다.
앱 설정에서 notify_user_change_number
매개변수가 true
로 설정된 경우 사용자가 전화번호를 변경하면 인바운드 시스템 메시지를 수신합니다.
{ "messages": [ { "from": "16315558889", "id": "ABGGFjFVWIifAzNzeXMtMTYzMTU1NTg4ODlAcy53aGF0c2FwcC5uZXQtMTU3NDA4MDEwMjIxMy1jaGFuZ2U", "system": { "body": "User A changed from +1 (631) 555-8889 to +1 (631) 555-8890", "new_wa_id": "16315558890", "type": "user_changed_number" }, "timestamp": "1574080102", "type": "system" } ] }
앱 설정에서 show_security_notifications
매개변수가 true
로 설정되어 있는 경우 WhatsApp에서 (대화 중인) 사용자가 변경되었을 가능성이 있으면 인바운드 시스템 메시지를 수신합니다.
identity
엔드포인트를 사용하여 이 알림을 확인할 때까지 이 사용자에게 발송하는 모든 메시지가 차단됩니다. 수신 메시지는 평소와 같이 계속 수신됩니다.
{ "messages": [ { "from": "16315553601", "id": "ABGGFjFVU2AfAzVzeXMtMTYzMTU1NTM2MDFAcy53aGF0c2FwcC5uZXQtMTYwMjUzNTM1NjMzMi1pZGVudGl0eQ", "system": { "body": "Test security code change", "identity": "Rc/eg9Rl0JA=", "type": "user_identity_changed", "user": "16315553601" }, "timestamp": "1602535356", "type": "system" } ] }
시스템 메시지 유형 | 설명 |
---|---|
| 사용자의 전화번호가 변경되었습니다. |
| WhatsApp에서 사용자가 변경되었을 수 있습니다. |
특정 WhatsApp ID를 직접 언급하는 메시지를 보내고 누군가 이 메시지에 답장을 보내면 context
개체와 mentions
배열에 언급된 ID가 표시됩니다. 전화번호를 두 개 이상 언급할 수 있기 때문에 mentions
필드는 전화번호가 하나만 언급되었더라도 전화번호로 구성된 배열이 됩니다.
언급을 포함한 메시지에 고객이 답장을 보내는 예시는 다음과 같습니다. context
개체에는 원본 메시지에 언급된 번호가 포함됩니다. text
개체의 답장에 같은 번호가 다시 언급됩니다.
{ "messages": [{ "context": { "from": "16315555544", "id": "gBGGFlA5FpafAgkOuJbRq54qwbM", "mentions": [ "16315551000", "16315551099" ] }, "from": "16315551234 ", "id": "ABGGFlA5FpafAgo6tHcNmNjXmuSf", "timestamp": "1504902988", "text": { "body": "@16315551000 and @16315551099 are mentioned" }, "type": "text" }] }