Kết nối bot Discord vào hộp thư ChatHub
Tạo ứng dụng Discord, lấy bot token, bật quyền đọc nội dung tin nhắn, mời bot vào server rồi thêm kênh Discord vào ChatHub để nhận và trả lời tin ngay trong hộp thư chung.
Bài này giải quyết việc gì#
Kênh Discord của ChatHub nhận tin nhắn riêng khách gửi cho bot và tin trong các kênh chữ của server, rồi cho nhân viên trả lời ngay trong hộp thư chung — kèm tệp đính kèm, trích dẫn, nút bấm và thu hồi tin đã gửi.
Khác các kênh còn lại, Discord không gửi tin nhắn về bằng webhook. ChatHub tự mở một kết nối thường trực tới Discord và giữ nó sống, nên bản cài không cần tên miền HTTPS công khai: máy chủ sau NAT hay chạy trong mạng nội bộ vẫn nhận đủ tin.
Toàn bộ phần cấu hình bên Discord nằm trong Developer Portal và mất khoảng mười phút. Bạn cần quyền quản trị trên server Discord muốn nối, vì bước mời bot phải do người có quyền Quản lý máy chủ thực hiện.
1. Chuẩn bị trước khi bắt đầu#
- 1
Một tài khoản Discord đã xác minh email, dùng để đăng nhập Developer Portal tại địa chỉ discord.com/developers/applications.
- 2
Một server Discord mà bạn có quyền Quản lý máy chủ. Nếu chỉ muốn thử, hãy tự tạo một server mới miễn phí trong ứng dụng Discord.
- 3
Quyền quản trị trong ChatHub để mở mục Kênh và thêm tài khoản mới.
2. Tạo ứng dụng và bot trên Discord#
- 1
Mở discord.com/developers/applications và đăng nhập tài khoản Discord.
- 2
Bấm Ứng dụng mới ở góc trên bên phải.
- 3
Trong hộp thoại Tạo một ứng dụng mới, điền ô Tên — tên này sẽ là tên bot mà khách nhìn thấy — rồi tích ô đồng ý điều khoản và bấm Tạo.
- 4
Discord có thể hỏi xác nhận bạn không phải robot; hoàn tất bước đó rồi ứng dụng mới được tạo.
- 5
Trong menu bên trái, mở mục Bot. Ứng dụng mới đã có sẵn một bot đi kèm; phần này là nơi đặt ảnh đại diện và tên hiển thị cho nó.
3. Lấy bot token#
Bot token là chuỗi bí mật duy nhất của kênh này: ai cầm nó cũng đọc và gửi được tin ở mọi server có bot. Discord chỉ hiện token đúng một lần, ngay sau khi bạn tạo lại, nên hãy chép và dán thẳng vào ChatHub.
- 1
Vẫn ở trang Bot, tìm mục Token rồi bấm Đặt lại Token. Discord hỏi xác nhận, và có thể yêu cầu mã xác thực hai lớp nếu tài khoản đang bật.
- 2
Chép token vừa hiện ra.
- 3
Dán token vào ChatHub theo mục 6 của bài này rồi mới rời trang. Nếu lỡ đóng trang, chỉ cần đặt lại token lần nữa — bản cũ hết hiệu lực ngay lúc đó.
- 4
Nếu muốn chỉ mình bạn mời được bot vào server, tắt công tắc Bot công khai ngay bên dưới rồi lưu thay đổi.
4. Bật quyền đọc nội dung tin nhắn#
Discord coi nội dung tin nhắn là dữ liệu nhạy cảm, nên mặc định bot chỉ nhận được thông tin về tin mà không thấy chữ bên trong. Thiếu bước này, kênh vẫn kết nối được nhưng không tin nào vào hộp thư — và ChatHub sẽ báo đúng lý do.
- 1
Ở trang Bot, kéo xuống mục Các Gateway Intent đặc quyền.
- 2
Bật công tắc Intent Nội Dung Tin Nhắn.
- 3
Bấm Lưu thay đổi ở thanh hiện lên dưới cùng trang, và chờ dòng Cập nhật bot thành công!
5. Mời bot vào server#
Bot chỉ đọc được những kênh mà nó có mặt và có quyền. Bước này tạo một liên kết mời kèm sẵn bộ quyền tối thiểu.
- 1
Trong menu trái, mở OAuth2 rồi kéo xuống khối Công cụ tạo URL OAuth2.
- 2
Ở mục Phạm vi, tích bot.
- 3
Ở mục Quyền hạn Bot vừa hiện ra, tích Xem Các Kênh (cột Quyền Hạn Chung) cùng Gửi Tin Nhắn, Đính Kèm Tập Tin và Xem Lịch Sử Tin Nhắn (cột Quyền Hạn Văn Bản).
- 4
Chép liên kết ở ô URL được tạo dưới cùng, mở nó trong trình duyệt, chọn server muốn nối rồi xác nhận cấp quyền.
- 5
Mở Discord và kiểm tra: bot phải xuất hiện trong danh sách thành viên của server.
6. Thêm kênh Discord trong ChatHub#
- 1
Mở ChatHub, vào Quản trị → Kênh rồi bấm Thêm tài khoản ở góc trên bên phải.
- 2
Trong cột Loại kênh của hộp thoại, kéo xuống cuối và chọn Discord.
- 3
Đặt Tên kênh gợi nhớ, ví dụ Discord cộng đồng — tên này chỉ hiện trong ChatHub để phân biệt các kênh cùng loại.
- 4
Dán bot token vào ô Bot token. ChatHub kiểm tra ngay hình dạng token và báo lỗi nếu bạn dán thiếu.
- 5
Bấm Tạo tài khoản. Hộp thoại cấu hình kênh mở ra, trạng thái lúc này là Đã ngắt.
- 6
Bấm Kết nối. Sau vài giây, trạng thái chuyển sang Đang hoạt động, còn tên và ảnh đại diện của kênh được thay bằng tên và ảnh của bot.
7. Kiểm tra và xử lý lỗi thường gặp#
- 1
Trong Discord, nhắn một câu vào kênh chữ mà bot có mặt, hoặc gửi tin nhắn riêng cho bot.
- 2
Mở Tin nhắn trong ChatHub: hội thoại mới xuất hiện kèm huy hiệu Discord ở góc ảnh đại diện.
- 3
Trả lời từ ChatHub và kiểm tra tin về đúng chỗ trong Discord.
Khi có trục trặc, ChatHub ghi thẳng nguyên nhân lên thẻ kênh thay vì mã lỗi của Discord:
- 1
Discord từ chối bot token này — token đã bị đặt lại lần nữa nên bản đang lưu hết hiệu lực. Lấy token mới rồi tạo lại kênh.
- 2
Bot chưa được bật quyền đọc nội dung tin nhắn — quay lại mục 4 và bật Intent Nội Dung Tin Nhắn.
- 3
Bot không có quyền trong kênh này — mở Cài đặt kênh trong Discord, mục Quyền, cấp cho vai của bot các quyền đã nêu ở mục 5.
- 4
Khách này không nhận tin nhắn riêng từ bot — người đó phải ở chung server với bot và bật nhận tin nhắn riêng từ thành viên server trong phần cài đặt quyền riêng tư của Discord.
8. Phạm vi và giới hạn cần biết#
- 1
Tin nhắn nhóm: công tắc Đồng bộ tin nhắn nhóm trong hộp thoại cấu hình quyết định các kênh chữ của server có vào hộp thư hay không. Tắt nó thì chỉ còn tin nhắn riêng. Bạn cũng có thể loại trừ từng kênh cụ thể sau khi nó đã gửi tin đầu tiên.
- 2
Kéo tin nhắn cũ: chỉ lấy được tin trong các kênh chữ của server, tối đa 200 tin mỗi kênh và 500 kênh mỗi lượt. Tin nhắn riêng cũ không kéo được vì Discord không cho bot liệt kê hộp thư riêng của chính nó.
- 3
Tin dài: Discord giới hạn 2.000 ký tự một tin, nên câu trả lời dài hơn được ChatHub tự chia thành nhiều tin liên tiếp.
- 4
Tệp đính kèm: giới hạn 25 MB với server chưa nâng cấp. Tệp khách gửi được chép về kho của ChatHub ngay khi nhận, vì liên kết tệp của Discord hết hạn sau khoảng một ngày.
- 5
Nhắc tên: tin nhắn ChatHub gửi ra không bao giờ kích hoạt @everyone hay @here, kể cả khi nội dung có chứa chữ đó.
- 6
Tin của bot khác và của webhook không vào hộp thư, để hai bot đặt cạnh nhau không trả lời lẫn nhau thành vòng lặp.
- 7
Discord không có biên nhận đã đọc cho bot, nên hộp thư không hiển thị trạng thái khách đã xem tin.