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

Sự kiện người dùng ẩn danh gửi tin nhắn

Khi người dùng gửi tin nhắn đến Official Account, 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.

Example

{
"event_name":"anonymous_send_text",
"app_id":"4591324301967398637",
"sender": {
"id":"1ffedc467f179649cf06"
},
"recipient":{
"id":"4587655845403518947"
},
"message":{
"conversation_id":"fa8f3f8701c2e89cb1d3",
"text":"hello",
"msg_id":"76eef2edcba822f67bb9"
},
"timestamp":"1648018958278",
"user_id_by_app":"260530994348645621"
}

Mô tả thuộc tính

Thuộc tính

Kiểu dữ liệu

Mô tả

app_id

String

Id của ứng dụng đang nhận sự kiện.

sender

Json Object

{
"id": "1ffedc467f179649cf06"
}

recipient

Json Object

{
"id": "4587655845403518947"
}

event_name

String

Thuộc tính xác định loại event, gồm các giá trị sau:

  • event_name = “anonymous_send_text”: Người dùng gửi tin nhắn văn bản.
  • event_name = “anonymous_send_image”: Người dùng gửi tin nhắn hình ảnh.
  • event_name = “anonymous_send_file” : Người dùng gửi file.
  • event_name = “anonymous_send_sticker”: Người dùng 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ụ:

{
"conversation_id":"fa8f3f8701c2e89cb1d3",
"text":"hello",
"msg_id":"76eef2edcba822f67bb9"
}

Trong đó:

  • “text”: Nội dung tin nhắn.
  • “msg_id”: Id của tin nhắn.
  • "conversation_id": Id của cuộc hội thoại.

Ngoài ra:

  • Nếu tin được gửi là tin nhắn đa phương tiện ( Hình ảnh, file, sticker,...) thì có thêm thuộc tính attachments.

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, sticker,...) 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":"https://photo-chat-widget.zdn.vn/a77bf286cec3279d7ed2",
"url":"https://photo-chat.widget.zdn.vn/w160/a77bf286cec3279d7ed2"
},
"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 sticker

Thuộc tính

Kiểu dữ liệu

Mô tả

attachments

Json Array

Ví dụ:

[
{
"payload": {
"id":"0",
"url":"https://zalo-api.zadn.vn/api/emoticon/sticker/webpc?eid=892&size=130&version=3"
},
"type":"sticker"
}
]

Trong đó:

  • 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.

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

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"
}
]

Trong đó:

  • payload: Chứa thông tin chi tiết của tin nhắn đa phương tiện.
    • 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.