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

Channel Webhook

Mezon cung cấp tính năng cho phép người dùng gửi tin nhắn tới các channel thông qua webhook tương ứng đã tạo.

Tạo Channel Webhook

Trước tiên, để làm việc với channel webhook, bạn cần đảm bảo bạn là thành viên của một clan và có quyền truy cập vào channel.

Tạo webhook là quy trình khá đơn giản.

  1. Vào channel bạn muốn tạo webhook, nhấp chuột phải để mở popup các thao tác có thể thực hiện trên channel đó.

    mezon-webhook-001

  2. Nhấp vào tùy chọn Edit Channel rồi vào tab Integrations.

    mezon-webhook-002

  3. Nhấp New Webhook để tiến hành tạo webhook mới.

    mezon-webhook-003

  • Bạn sẽ có một user (ở đây tên Spidey bot) và có thể tùy chỉnh tên và avatar của bot này.

  • Nhấp Copy Webhook URL để lấy endpoint webhook, dùng cùng payload webhook để gửi tin nhắn tới channel.

Đặc tả Webhook

Endpoint

Webhook được gửi qua yêu cầu HTTP POST tới URL duy nhất được tạo cho mỗi tích hợp webhook.

Cấu trúc URL:

https://webhook.mezon.ai/webhooks/{channelId}/{token}

Tham số URL:

Tham sốKiểuMô tả
channelIdstringĐịnh danh duy nhất của channel.
tokenstringToken bảo mật để xác thực yêu cầu. Có vẻ là chuỗi base64 hoặc JSON Web Token (JWT) chứa thông tin xác minh tính xác thực của yêu cầu.

Request Header

HeaderGiá trịMô tả
Content-Typeapplication/jsonCho biết body yêu cầu ở định dạng JSON.

Request Body

Body yêu cầu chứa đối tượng JSON với chi tiết tin nhắn kích hoạt webhook.

Đối tượng gốc

TrườngKiểuBắt buộcMô tả
typestringLoại sự kiện webhook. Trong ví dụ này là "hook".
messageobjectĐối tượng chứa chi tiết tin nhắn.

Định dạng tin nhắn

Đối tượng này bao gồm nội dung và metadata của tin nhắn.

TrườngKiểuBắt buộcMô tả
tstringNội dung văn bản thô của tin nhắn.
mkarray of objectsKhôngMảng đối tượng mô tả markdown hoặc định dạng đặc biệt áp dụng cho văn bản tin nhắn. Lưu ý có thể có nhiều mảng mk. Các giá trị có thể của type trong đối tượng này gồm lk (link) và pre (văn bản định dạng sẵn).
mentionsarray of objectsKhôngMảng đối tượng, mỗi đối tượng đại diện một người dùng được mention trong tin nhắn.
imagesarray of objectsKhôngMảng đối tượng, mỗi đối tượng đại diện một ảnh đính kèm tin nhắn.
hgarray of objectsKhôngMảng đối tượng, mỗi đối tượng đại diện một hashtag channel được mention trong tin nhắn.

Đối tượng mk (markdown)

TrườngKiểuBắt buộcMô tả
typestringLoại định dạng áp dụng (ví dụ "lk", "pre").
sintegerChỉ số ký tự bắt đầu của đoạn định dạng trong chuỗi t.
eintegerChỉ số ký tự kết thúc của đoạn định dạng trong chuỗi t.

Đối tượng mentions

TrườngKiểuBắt buộcMô tả
usernamestringKhôngUsername của người dùng được mention.
user_idstringKhôngĐịnh danh duy nhất của người dùng được mention.
sintegerChỉ số ký tự bắt đầu của mention trong chuỗi t.
eintegerChỉ số ký tự kết thúc của mention trong chuỗi t.
Lưu ý

Bạn có thể mention mọi người trong channel theo hai cách:

  • Theo user_id: Dùng định danh duy nhất 1775731111020111321 để mention mọi người trong channel
  • Theo username: Dùng here làm username để mention mọi người trong channel (@here)

Cần cung cấp username hoặc user_id, nhưng không được cung cấp cả hai.

Ví dụ 1: Mention @here theo user_id

"mentions": [
{
"user_id": "1775731111020111321",
"s": 65,
"e": 88
}
]

Ví dụ 2: Mention @here theo username

"mentions": [
{
"username": "here",
"s": 65,
"e": 88
}
]

Đối tượng images

TrườngKiểuBắt buộcMô tả
fnstringTên tệp ảnh.
szintegerKích thước ảnh tính bằng byte.
urlstringURL công khai để truy cập ảnh.
ftstringMIME type của ảnh (ví dụ "image/jpeg").
wintegerChiều rộng ảnh tính bằng pixel.
hintegerChiều cao ảnh tính bằng pixel.

Đối tượng hg (hashtag)

TrườngKiểuBắt buộcMô tả
channelIdstringĐịnh danh duy nhất của channel được tham chiếu.
sintegerChỉ số ký tự bắt đầu của hashtag trong chuỗi t.
eintegerChỉ số ký tự kết thúc của hashtag trong chuỗi t.

Ví dụ Channel Webhook

curl --location 'https://webhook.mezon.ai/webhooks/1840666462029615104/MTc2MDAzODcxNTU5NDU0OTgzNzoxODQwNjY2NDYyMDEyODM3ODg4OjE4NDA2NjY0NjIwMjk2MTUxMDQ6MTk3NjM3MTczNTI3MTgzNzY5Ng.zLl5tsGaFYnC3sPXgOhVlZoBNrVeoC8hD6oKv0hxavs' \
--header 'Content-Type: application/json' \
--data-raw '{
"type": "hook",
"message": {
"t": "[pre] Webhook message example: [lk] https://mezon.ai \n [mention] @aliceinmezon #general",
"mk": [
{
"type": "pre",
"s": 0,
"e": 30
},
{
"type": "lk",
"s": 36,
"e": 54
}
],
"mentions": [
{
"user_id": "1783755414765047808",
"s": 65,
"e": 77
}
],
"images": [
{
"fn": "thumbnail_dog1.jpg",
"sz": 5620,
"url": "https://cdn.mezon.vn/0/1843962578301095936/1829065039080853500/95_0thumbnail_dog1.jpg",
"ft": "image/jpeg",
"w": 275,
"h": 183
}
],
"hg": [
{
"channelId": "1973524969530855424",
"s": 79,
"e": 86
}
]
}
}

Kết quả

mezon-webhook-004