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.
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:gfd8g7fd89dgfd
Mã thông báo API:aaaxczsadzxcasdacxzcasdaaaxczsadzxcasdacxzcasd
URL 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ệ.
URL Webhookđược sử dụng để đăngTin nhắn,Tin nhắn phản hồivàBiên lai tin nhắnlê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": \[
{
"kiểu": "tin nhắn",
"mId": "xcvzzxcxczxczxc",
"dấu thời gian": 2132131321000,
"tin nhắn": {
"kiểu": "văn bản",
"văn bản": "Xin chào thế giới"
}
}
\],
"liên hệ": {
"firstName": "John",
"lastName": "Doe",
"profilePic": "",
"countryCode": "MY",
"email": "[email protected]",
"phone": "+60177872890",
"language": "en"
}
}'
Mẫu cho tiếng vang 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": \[
{
"kiểu": "message\_echo",
"mId": "xcvzzxcxczxczxc",
"timestamp": 2132131321000,
"message": {
"type": "text",
"text": "Hello World"
}
}
\],
"contact": {
"firstName": "John",
"lastName": "Doe",
"profilePic": "",
"Mã quốc gia": "MY",
"Email": "[email protected]",
"Điện thoại": "+60177872890",
"Ngôn ngữ": "en"
}
}'
Mẫu biên lai 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": \[
{
"kiểu": "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 | Sự 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 | Tin nhắn văn bả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 | Họ | 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"
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
/message
của máy chủ web.
Sau đây là ví dụ cURL của respond.io gọi điểm cuối:
curl -X POST \\
/message \\
-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",
"message": {
"kiểu": "văn bản",
"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;
nếu (!bearerToken)
trả về res.send(401)
const token = bearerToken.substring(7, bearerToken.length);
nếu (apiToken !== token) {
trả về res.send(401)
}
tiếp theo();
};
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.
Mẫu cho Văn bản
{
"type": "text",
"text": "Chào mừng đến với respond.io",
}
Cánh đồng | Sự mô tả | Xác thực |
---|---|---|
kiểu | Loại tin nhắn | Yêu cầu. chữ |
chữ | Tin nhắn văn bản | Yêu cầu. Độ dài tối đa 7.000 ký tự. |
Mẫu cho tập tin phương tiện
{
"type": "attachment",
"attachment": {
"type": "image|video|audio|file",
"url": "https://abc/japan.png",
"mimeType": "image/png",
"fileName": "logo công ty.png",
"description": "logo công ty mới nhất"
}
}
Cánh đồng | Sự mô 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 | 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 | 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 đí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í
{
"type": "location",
"latitude": 0.123456,
"longitude": -0.1234,
"address": "Sky Suites, Jalan P. Ramlee, Kuala Lumpur, 50250 Kuala Lumpur, Wilayah Persekutuan Kuala Lumpur"
}
Cánh đồng | Sự mô 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
{
"type": "quick\_reply",
"title": "Chọn ngôn ngữ bạn muốn",
"replies": \[
"Tiếng Mã Lai",
"Tiếng Anh"
\]
}
Cánh đồng | Sự 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ự. |
Lỗi (Trạng thái HTTP → 4xx)
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ó, 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.
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.