Chuyển tới nội dung chính

Sự kiện Official Account gửi tin nhắn cho người dùng

Khi Official Account gửi tin nhắn đến người dùng thông qua Open API hay từ cửa sổ chat OA Admin, hệ thống Zalo sẽ gửi một request HTTP đến Webhook Url đã đăng ký của ứng dụng.

  • URL: Webhook Url của ứng dụng
  • Method: POST
  • Content Type: application/json
  • X-ZEvent-Signature: mac = sha256(appId + data + timeStamp + OAsecretKey), với data là chuỗi json trả về dưới đây.

Ví dụ

{
"app_id": "360846524894903967",
"sender": {
"id": "388613280879808645",
"admin_id": "4267886274574868951"
},
"recipient": {
"id": "246845883529197922"
},
"event_name": "oa_send_text",
"message": {
"text": "message",
"msg_id": "465928106db72e8cba7"
},
"user_id_by_app": "552177279717587730",
"timestamp": "1543980770426"
}

Mô tả thuộc tính

Thuộc tính

Kiểu dữ liệu

Mô tả

app_id

String

Id ứng dụng ứng với access_token gọi API gửi tin nhắn

sender

Json Object

Ví dụ:

{
"id": "388613280879808645",
"admin_id": "4267886274574868951"
}

Trong đó:

  • "id": Id của Official Account gửi tin nhắn
  • "admin_id": Id của admin OA nhắn tin (Chỉ có khi OA gửi tin nhắn bằng tool chat OA - https://oa.zalo.me/chatv2)

recipient

Json Object

Ví dụ:

{
"id": "246845883529197922"
}

Trong đó:

  • "id": Id của User nhận tin nhắn

event_name

String

Thuộc tính xác định loại event, có giá trị như sau:

  • event _name="oa_send_text": OA gửi tin nhắn văn bản
  • event _name="oa_send_image": OA gửi tin nhắn hình ảnh
  • event _name="oa_send_gif": OA gửi tin nhắn có ảnh gif
  • event _name="oa_send_list": OA gửi tin nhắn tương tác
  • event _name="oa_send_file": OA gửi tin nhắn đính kèm file
  • event _name=”oa_send_sticker”: OA gửi tin nhắn sticker

message

Json Object

Tùy theo event_name mà message sẽ có định dạng khác nhau, chi tiết sẽ được định nghĩa bên dưới bảng này.

Ví dụ:

{
"text": "message",
"msg_id": "96d3cdf3af150460909"
}

Trong đó:

  • "text": Nội dung tin nhắn người dùng gửi cho Official Account.
  • "msg_id": Id của tin nhắn.
Ngoài ra:
  • Nếu tin nhắn được gửi là tin nhắn đa phương tiện (Hình ảnh, ảnh gif,...) thì sẽ có thêm thuộc tính attachments.
  • Nếu trong data trả về có thuộc tính “quote_msg_id” thì tin nhắn này được gửi qua Gửi tin tư vấn trích dẫn

user_id_by_app

String

Trường này chỉ có khi app_id chỉ ứng dụng đang liên kết với Official Account nhận sự kiện.

Id này có thể sử dụng cho social_api

timestamp

String

Thời điểm request được gửi, tính bằng milisecond

Cấu trúc thuộc tính attachments

Thuộc tính

Kiểu dữ liệu

Mô tả

attachments

Json Array

Các dạng tin nhắn đa phương tiện (Hình ảnh, ảnh gif,...) sẽ có phần attachments chứa các thông tin chi tiết kèm theo tin nhắn đó.

Cấu trúc attachments đối với từng loại tin nhắn:

1. Tin nhắn hình ảnh

Thuộc tính

Kiểu dữ liệu

Mô tả

attachments

Json Array

Ví dụ:

[
{
"payload": {
"thumbnail": "http://t.f6.photo.talk.zdn.vn/9c2db3ccc0a223fc7ab3.jpg",
"url": "http://f6.photo.talk.zdn.vn/9c2db3ccc0a223fc7ab3.jpg"
},
"type": "image"
}
]

Trong đó:

  • payload: Chứa thông tin chi tiết của tin nhắn đa phương tiện
    • thumbnail: thumbnail của ảnh
    • url: đường dẫn đến hình ảnh gốc
  • type: Loại tin nhắn

2. Tin nhắn ảnh gif

Thuộc tính

Kiểu dữ liệu

Mô tả

attachments

Json Array

Ví dụ:

[
{
"payload": {
"thumbnail": "http://cgif.zp.zdn.vn/634e85277d6a07b_t.jpg",
"url": "http://cgif.zp.zdn.vn/634e81577d6a07b_n.gif"
},
"type": "gif"
}
]

Trong đó:

  • payload: Chứa thông tin chi tiết của tin nhắn đa phương tiện
    • thumbnail: thumbnail của ảnh gif
    • url: đường dẫn đến ảnh gif
  • type: Loại tin nhắn

3. Tin nhắn đính kèm list

Thuộc tính

Kiểu dữ liệu

Mô tả

attachments

Json Array

Ví dụ:

[
{
"payload": {
"thumbnail": "https://zalo-article-photo-td.zadn.vn/7069498cdd7#26915261",
"description": "Zalo",
"url": ""
},
"type": "link"
},
{
"payload": {
"thumbnail": "https://zalo-article-photo-td.zadn.vn/bb225fb7ba234#18900249",
"description": "your_description",
"url": "https://media.zalo.me/detail/57974586350352884"
},
"type": "link"
},
{
"payload": {
"thumbnail": "https://zalo-article-photo-td.zadn.vn/3627ee952c1#16472239",
"description": "your_description",
"url": "https://media.zalo.me/detail/57974586350352884"
},
"type": "link"
}
]

Trong đó:

  • payload: Chứa thông tin chi tiết của tin nhắn đa phương tiện
    • thumbnail: Hình ảnh hiển thị
    • description: Thông tin mô tả của trang web đó.
    • url: đường dẫn đến trang web
  • type: Loại tin nhắn

4. Tin nhắn đính kèm file pdf

Thuộc tính

Kiểu dữ liệu

Mô tả

attachments

Json Array

Ví dụ:

[
{
"payload": {
"size": "233947",
"name": "developer.docx",
"checksum": "db8f0a790d28e3d8658a0ff0846189",
"type": "docx",
"url": "https://f7-group-zf.zdn.vn/xxx484bd4258d6a/xxx52598708747"
},
"type": "file"
}
]
  • payload:
    • size: kích thước của file
    • name: tên file
    • checksum: kết quả nhận được khi hash MD5 file, dùng để check tính toàn vẹn của file.
    • type : loại file
    • url" đường dẫn để download file
  • type: Loại tin nhắn

5. Tin nhắn sticker

Thuộc tính

Kiểu dữ liệu

Mô tả

attachments

Json Array

Ví dụ:

[
{
"payload": {
"url": "https://api.zalo.me/api/emoticon/oasticker?eid=73585551855742711&size=130",
"id": "e1540df031b5deb81a4"
},
"type": "sticker"
}
]
  • payload: Chứa thông tin chi tiết của tin nhắn đa phương tiện
    • url: đường dẫn đến sticker
    • id: id của sticker
  • type: Loại tin nhắn

6. Tin nhắn template

Thuộc tính

Kiểu dữ liệu

Mô tả

payload

Json Array

Ví dụ:

{
"zinstant_id": "templateId=12056",
"text": "Xác nhận đặt bàn thành công",
"link_url": "https://stc-zinstant.api.zaloapp.com/static/3m/12056/U5HXOYrlKZ4vDa9aSJ9eOZ
b3PLbLLJD3GIrFPt8oK5zuQN5fTZDXRaCm?data=html",
"checksum": "142899ef0d4a69cd891c3b38d016853c"
}
  • zinstant_id: Định danh mẫu tin nhắn
  • text: nội dung thông báo tin nhắn
  • link_url: html tin nhắn
  • checksum: chữ ký của html tin nhắn