Sự tích hợp này cho phép nhóm của bạn trò chuyện với khách hàng qua bất kỳ Kênh nhắn tin nào thông qua việc triển khai tùy chỉnh.
Kết nối kênh tùy chỉnh
Bước 1: Vào Cài đặt > Kênh
Bước 2: Nhấp vào Thêm kênh > Kênh tùy chỉnh > Kết nối
Bước 3: Nhập URL Webhook đích nơi tin nhắn đi sẽ được gửi đến.
Bước 4: Chọn loại ID cho Kênh > nhấp vào Tiếp theo
Các loại ID được sử dụng để nhận dạng người dùng và được dùng để giao tiếp với máy chủ tích hợp tùy chỉnh của bạn.
Có hai loại ID có sẵn:
Số điện thoại: Sử dụng tùy chọn này nếu nhà cung cấp dịch vụ nhắn tin nhận dạng Danh bạ dựa trên Số điện thoại của họ.
Định dạng mẫu:
+60177872890
ID tùy chỉnh: Sử dụng tùy chọn này nếu nhà cung cấp dịch vụ nhắn tin nhận dạng Danh bạ dựa trên ID tùy chỉnh.
Độ dài ký tự tối đa là 50.
AZ,az,0-9,_,=,+,/và@được cho phép.
Bước 5: Hộp thoại sau sẽ cung cấpID kênh,Mã thông báo APIvàURL Webhookví dụ
ID kênh:
gfd8g7fd89dgfdMã thông báo API:
aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasdURL webhook:
https://app.respond.io/custom/channel/webhook/Sử dụng loại ID số điện thoại cho phép bạn bắt đầu cuộc trò chuyện và gửi tin nhắn đầu tiên đến một Liên hệ.
Truyền tin nhắn đến respond.io
URL Webhook được sử dụng để đăng Tin nhắn, Tin nhắn phản hồi và Biên lai tin nhắn lên nền tảng respond.io.
Mã được cung cấp sẽ kích hoạt webhook trên respond.io, tạo một Liên hệ nếu cần và lưu tin nhắn trong Liên hệ đó.
Mẫu cho tin nhắn
curl -X POST \\
https://app.respond.io/custom/channel/webhook/ \\
-H 'ủy quyền: Người mang aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'kiểm soát bộ đệm: không có bộ đệm' \\
-H 'kiểu nội dung: ứng dụng/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"sự kiện": \[
{
"loại": "tin nhắn",
"mId": "xcvzzxcxczxczxc",
"dấu thời gian": 2132131321000,
"tin nhắn": {
"loại": "văn bản",
"văn bản": "Xin chào thế giới"
}
}
\],
"liên hệ": {
"Tên": "John",
"Họ": "Doe",
"Ảnh đại diện": "<https://static.independent.co.uk/s3fs-public/thumbnails/image/2015/07/08/14/pic.jpg>",
"Mã quốc gia": "TÔI",
"email": "john@respond.io",
"điện thoại": "+60177872890",
"ngôn ngữ": "en"
}
}'Mẫu cho tiếng vang tin nhắn
curl -X POST \\
https://app.respond.io/custom/channel/webhook/ \\
-H 'Authorization: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'Cache-Control: no-cache' \\
-H 'Content-Type: application/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"events": \[
{
"type": "message_echo",
"mId": "xcvzzxcxczxczxc",
"timestamp": 2132131321000,
"message": {
"type": "text",
"text": "Xin chào thế giới"
}
}
\],
"contact": {
"firstName": "John",
"lastName": "Doe",
"profilePic": "",
"countryCode": "MY",
"email": "john@respond.io",
"phone": "+60177872890",
"language": "en"
}
}' Mẫu biên lai tin nhắn
curl -X POST \\
https://app.respond.io/custom/channel/webhook/ \\
-H 'ủy quyền: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'kiểm soát bộ đệm: không có bộ đệm' \\
-H 'kiểu nội dung: ứng dụng/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"events": \[
{
"type": "message_status",
"mId": "xcvzzxcxczxczxc",
"timestamp": 2132131321000,
"status": {
"value": "đã gửi|đã chuyển|đã đọc|đã thất bại",
"message": "Lỗi: Gửi không thành công do mã thông báo không hợp lệ"
}
\]
}'Cánh đồng | Mô tả. | Xác thực |
|---|---|---|
kênhID | ID kênh duy nhất | Yêu cầu. Trường duy nhất. Được tạo ra bởi respond.io. |
liên hệID | ID liên hệ duy nhất | Yêu cầu. Mã số liên lạc respond.io duy nhất. Tối đa 50 ký tự. |
sự kiện.loại | Loại sự kiện | Yêu cầu. Kiểu có sẵn: message, message_echo và message_status. |
sự kiện.mld | ID tin nhắn | Yêu cầu. ID tin nhắn duy nhất. Tối đa 50 ký tự. |
sự kiện.dấu thời gian | Thời gian kỷ nguyên UNIX (mili giây) | Yêu cầu. Thời gian của sự kiện kích hoạt lệnh gọi lại. |
sự kiện.tin nhắn.kiểu | Loại tin nhắn | Yêu cầu. Các loại tin nhắn có sẵn: văn bản, tệp đính kèm, vị trí và trả lời nhanh. Tham khảo phần Loại tin nhắn để biết các mẫu loại tin nhắn khác. |
sự kiện.tin nhắn.văn bản | Văn bản tin nhắn | Yêu cầu. Độ dài tối đa 7.000 ký tự. |
sự kiện.trạng thái.giá trị | Chữ | Bắt buộc nếu event.type là message_status. Các giá trị trạng thái có sẵn: đã gửi, đã chuyển, đã đọc và không thành công. |
sự kiện.trạng thái.tin nhắn | Chữ | Bắt buộc nếu events.status.value không thành công. |
liên hệ.firstName | Tên đầu tiên | Không bắt buộc. Tối đa 50 ký tự. |
contact.lastName | Họ | Không bắt buộc. Tối đa 50 ký tự. |
liên hệ.profilePic | URL Ảnh Hồ Sơ | Không bắt buộc. Kích thước ảnh đại diện không được quá 100 kb. Khuyến nghị 720x720. |
liên hệ.locale | Mã địa phương | Không bắt buộc. Tham khảo danh sách giá trị tại đây. |
liên hệ.countryCode | Mã quốc gia | Không bắt buộc. Mã quốc gia gồm 2 chữ cái - Mã ISO ALPHA-2. |
contact.timezone | Múi giờ | Không bắt buộc. (tối thiểu: -24) (tối đa: 24). |
liên hệ.email | Địa chỉ Email | Không bắt buộc. Tối đa 50 ký tự. |
liên hệ.điện thoại | Số điện thoại | Không bắt buộc. Tối đa 18 ký tự. |
liên hệ.ngôn ngữ | Ngôn ngữ | Không bắt buộc. Tiêu chuẩn ISO639-1. |
Phản hồi - Thành công (trạng thái HTTP → 200)
"Được rồi"Xử lý tin nhắn gửi đi từ respond.io
respond.io sẽ gọi điểm cuối<API Base URL>/message
Đảm bảo bạn áp dụng mãTin nhắn gửi đitrên tuyến đường
/messagecủa máy chủ web.
Sau đây là ví dụ cURL của respond.io gọi điểm cuối:
curl -X POST \\
<API Base URL>/message \\
-H 'ủy quyền: Bearer aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd' \\
-H 'kiểm soát bộ đệm: không có bộ đệm' \\
-H 'kiểu nội dung: ứng dụng/json' \\
-d '{
"channelId": "gfd8g7fd89dgfd",
"contactId": "+60177872890",
"message": {
"type": "text",
"text": "Xin chào thế giới"
}
}'Phản hồi - Thành công (trạng thái HTTP → 200)
{
"mId": "1640141607842"
}Xác thực cần phải được thực hiện tại điểm cuối trước khi gửi tin nhắn đến Nhà cung cấp dịch vụ nhắn tin.
Dưới đây'là một ví dụ về việc sử dụng phần mềm trung gian express cho mục đích này:
const {validationResult} = require('express-validator');
const validateToken = (req, res, next) => {
const apiToken = <>;
const bearerToken = req.headers.authorization;
if (!bearerToken)
return res.send(401);
const token = bearerToken.substring(7, bearerToken.length);
if (apiToken !== token) {
return res.send(401);
}
next();
};
module.exports = {
validateToken
}; Chúng tôi'đã đưa vào một ví dụ về Kênh tùy chỉnh mà bạn có thể thử nghiệm trên máy chủ của mình. Hãy xem dự án GitHub của chúng tôi tại đây.
Loại tin nhắn
Mẫu cho Văn bản
{
"loại": "văn bản",
"văn bản": "Chào mừng đến với respond.io",
}Cánh đồng | Sự miêu tả | Xác thực |
|---|---|---|
kiểu | Loại tin nhắn | Yêu cầu. chữ |
chữ | Văn bản tin nhắn | Yêu cầu. Độ dài tối đa 7.000 ký tự. |
Mẫu cho tập tin phương tiện
{
"loại": "tệp đính kèm",
"tệp đính kèm": {
"loại": "hình ảnh|video|âm thanh|tệp",
"url": "https://abc/japan.png",
"mimeType": "ảnh/png",
"Tên tệp":"logo công ty.png",
"mô tả": "logo công ty mới nhất"
}
}Cánh đồng | Sự miêu tả | Xác thực |
|---|---|---|
kiểu | Loại tin nhắn | Yêu cầu. đính kèm. |
tập tin đính kèm.type | Loại đính kèm | Yêu cầu. Các loại tệp đính kèm có sẵn: hình ảnh, video, âm thanh và tệp. |
đính kèm.url | Địa chỉ URL | Yêu cầu. Tối đa 2.000 ký tự. Đảm bảo đó là liên kết công khai để người dùng hoặc liên hệ có thể xem nội dung. |
tệp đính kèm.mimeType | Kiểu Mime của tệp đính kèm | Không bắt buộc |
file đính kèm.tên_tệp | Tên tập tin | Không bắt buộc. Tên tệp phải bao gồm phần mở rộng. Tối đa 256 ký tự (bao gồm cả phần mở rộng tệp). Gửi tệp không có phần mở rộng hoặc phần mở rộng không đúng có thể khiến người liên hệ hoặc người dùng không thể mở tệp. |
tệp đính kèm.mô tả | Mô tả tập tin | Không bắt buộc. Tối đa 256 ký tự. Chỉ áp dụng cho attachment.type = image. |
Đảm bảo rằng URL tệp đính kèm không bị trình duyệt tải xuống một cách cưỡng bức. Tiêu đề HTTP response's Content-Disposition phải có giá trị mặc định là inline.
Mẫu cho Vị trí
{
"gõ": "vị trí",
"vĩ độ": 0,123456,
"kinh độ": -0.1234,
"địa chỉ": "Sky Suites, Jalan P. Ramlee, Kuala Lumpur, 50250 Kuala Lumpur, Wilayah Persekutuan Kuala Lumpur"
}Cánh đồng | Sự miêu tả | Xác thực |
|---|---|---|
kiểu | Loại tin nhắn | Yêu cầu. vị trí. |
vĩ độ | Tọa độ | Yêu cầu. Vĩ độ (±90°) nằm trong phạm vi hợp lệ. |
kinh độ | Tọa độ | Yêu cầu. Kinh độ (±180°) nằm trong phạm vi hợp lệ. |
Địa chỉ | Địa chỉ vị trí | Không bắt buộc. Tối đa 256 ký tự. |
Mẫu trả lời nhanh
{
"loại": "trả lời nhanh",
"tiêu đề": "Chọn ngôn ngữ ưa thích của bạn",
"trả lời": \[
"Tiếng Mã Lai",
"Tiếng Anh"
\]
}Cánh đồng | Mô tả. | Xác thực |
|---|---|---|
kiểu | Loại tin nhắn | Yêu cầu. trả lời nhanh. |
tiêu đề | Tiêu đề trả lời nhanh | Yêu cầu. Tối đa 256 ký tự. |
trả lời | Văn bản trả lời | Yêu cầu. Tối đa 10 câu trả lời, mỗi câu trả lời có tối đa 256 ký tự. |
Mã lỗi
Lỗi (Trạng thái HTTP → 4xx)
Cấu hình kênh
Bước 1: Nhấp vào Cài đặt > Kênh
Bước 2: Xác định Kênh tùy chỉnh > nhấp vào Quản lý
Bước 3: Trong trang Cấu hình kênh tùy chỉnh bạn sẽ thấy các cấu hình sau:
Biểu tượng kênh - Tải lên hình ảnh làm biểu tượng cho Kênh tùy chỉnh của bạn.
Tên kênh - Tên kênh có thể được thay đổi và được sử dụng nội bộ để xác định Kênh.
URL webhook cho tin nhắn gửi đi — URL webhook cho tin nhắn gửi đi tới Kênh này.
URL webhook cho tin nhắn đến — URL webhook cho tin nhắn đến Kênh này.
Loại ID — Được sử dụng để nhận dạng người dùng và được dùng để giao tiếp với máy chủ tích hợp tùy chỉnh của bạn.
ID kênh — ID kênh duy nhất để xác định Kênh tùy chỉnh của bạn.
Mã thông báo API — Mã định danh duy nhất được sử dụng để xác thực người dùng truy cập API.
Bước 4: Nhấp vào Lưu thay đổi để cập nhật cấu hình Kênh tùy chỉnh.
Câu hỏi thường gặp và khắc phục sự cố
Tôi có thể kết nối trò chuyện từ các nền tảng khác bằng Kênh tùy chỉnh không?
Có, bạn có thể. Sau đây là ba bước cần thực hiện:
Trong respond.io, nhập URL webhook đích từ nền tảng khác vào trường URL webhook cho tin nhắn đến .
Trên nền tảng khác, hãy thiết lập URL webhook trỏ đến respond.io, cho phép Danh bạ gửi tin nhắn lại cho bạn.
Bạn'sẽ cần một Máy chủ tích hợp tùy chỉnh để diễn giải các API từ cả respond.io và nền tảng khác, cho phép trao đổi tin nhắn giữa chúng.
Hãy đảm bảo xác nhận với nền tảng kia rằng hai bước đầu tiên là khả thi.
Câu hỏi thường gặp về Webhooks kênh tùy chỉnh
Tại sao webhook trả về trạng thái 200 ngay cả khi tin nhắn không được gửi đến respond.io?
Khi kết nối Kênh tùy chỉnh, các tin nhắn được gửi đến respond.io thông qua webhooks sẽ luôn trả về mã trạng thái 200 ngay lập tức, bất kể tin nhắn có được chuyển thành công đến respond.io hay không. Điều này là do bản chất của webhooks, được thiết kế để trả về phản hồi ngay lập tức mà không cần xác minh sự thành công của việc gửi tin nhắn.