【Series Discord】 Phần 1 – Discord là gì ? Tạo Discord bot chat như thế nào?

discord chatbot

【Series Discord】 Phần 1 – Discord là gì ? Tạo Discord bot chat như thế nào?

I. Discord là gì ?

1. Discord

Trong thời đại công nghệ 4.0 hiện nay, việc giao tiếp trong công việc, vui chơi hay ngay cuộc sống hàng ngày luôn gắn liền với các tool chat. Bạn có thể dùng facebook chat để liên lạc với bạn bè trên FaceBook. Dùng work place chat, skype, slack, mattermost hay ChatWork cho các nhu cầu trao đổi trong công việc.Vậy khi chơi một tựa game như League of Legends thì các bạn sẽ dùng tool chat nào ? Tất nhiên game LOL cũng đã có hệ thống chat, chat voice hỗ trợ game thủ nhưng khi kết thúc trận đấu thì các gamer không còn kết nối liên lạc với nhau. Để giải quyết vấn đề trên tool chat Discord đã ra đời với đối tượng chính là các gammer.

2. Discord có gì hay ?

Đến đây sẽ có nhiều bạn tự hỏi Ủa, vậy xài Skype cũng được mà. Mất công cài thêm tool chat nữa là chi, phiền quá ha Vậy discord có điểm gì nổi bật so với các tool chat khác ?

※ Chi phí tiết kiệm:
Với mức plan free bạn có thể xem lịch sử tin nhắn không giới hạn, call video lên đến 8 người hay share màn hình… So với các tool chat khác bạn phải trả một khoản phí nho nhỏ để sử dụng các option như trên.

※ Giao diện đẹp, hiệu năng tốt:
Discord có UI khá tuyệt, cho người dùng có trải nghiệm tốt. Ví dụ như phân loại user theo role, theo group hay tùy biến quyền hạn của user đó theo level.
Bên cạnh đó Discord có hiệu năng khá ấn tượng. Theo thống kê Discord có thể hoạt động đồng thời 100 server cùng 1 lúc và được đánh giá ngốn ít CPU hơn Slack
Tham khảo : https://www.quora.com/Why-would-someone-use-Discord-over-Slack

※ Khả năng customize tốt
Với các tool chat khác, đại đa số chúng ra chỉ có role admin group, member trong 1 group, chanel.
Nhưng với Discord chúng ta có thể tạo rất nhiều role khác nhau, cũng như thiết lập role đó có những quyền hạn gì trong chanel hay set màu title cho các user có cùng 1 role.
Ngoài ra bạn có thể set level, Exp cho user.
Ví dụ 1 user mỗi lần comment thì tăng Exp lên 1. Đến một số lượng Exp nào đó thì user đó được lên level. Role của user đó và màu của User name đó cũng thay đổi tương ứng. Level cao thì sẽ được join vô các chanel private.
Nghe thật thú vị phải không các bạn.

II. Discord bot chat

Bot-chat là một con bot tự động thực thi các hành động dựa trên kịch bản có sẵn.
Ví dụ chúng ta có thể tạo 1 bot chat lặp lại hành động 10h sáng mỗi ngày sẽ gửi lời chào kèm một hình ảnh random đến toàn channel chỉ định. Hoặc bằng đoạn chat có thể yêu cầu bot tìm kiếm bài hát và play bài hát đó trong chanel voice hay bot chat tổng hợp thông tin bài báo và gửi lên chanel theo khoảng thời gian nhất định…
Như vậy với bot-chat chúng ta có thể tự động thực hiện kha khá công việc đủ để đáp ứng nhu cầu giải trí cơ bản phải không nào ?

1. Tạo server Discord

  • Đầu tiên các bạn có thể tạo một account trên discord tại đây
  • Sau đó tạo một server discord riêng theo các step sau:
Click button Add a Server
Điền thông tin Server cơ bản
Hình ảnh Server sau khi được create.
Nếu bạn là Server owner thì sẽ có biểu tượng vương miện như hình trên.

Sau khi làm đến đây bạn đã hoàn thành tạo Server Discord.
Để gửi invite đến cho bạn bè cùng sử dụng discord để liên lạc, bạn có thể tạo link invite bằng cách click button “Invite People”.

2. Tạo bot chat

Để tạo một bot chat cho Discord, bạn truy cập vào trang Discord Developer để tạo một Application. Mỗi application sẽ tương ứng với một bot-chat.

Tạo một application
Thông tin cơ bản của Application mới tạo
Chuyển sang mục /Bot chúng ta tạo một bot chat với UserName là “Trưởng thôn”.
Tại đây có thể set cho bot chat này có những quyền hạn nào trong chanel.
Sang mục OAuth2 để tạo kết nối bot-chat đến các server khác.
Trong mục Scopes tôi chọn “bot” và set quyền cho bot này là “Administrator”.
Như hình trên sẽ có 1 link được tự động gen theo option đã chọn.
Truy cập link đã gen ở trên bằng browser, chúng ta được màn hình này.
Ở đây bạn có thể chọn thêm bot vào một trong các server Dicord mà tài khoản của bạn có quyền add bot chat.
Sau khi hoàn thành thêm bot vào server, quay lại màn hình Server VTI Talk trên Discord ta có hình trên. Ở đây bot “Trưởng thôn” đã được add vào Server Discord và có tag BOT nhưng hiện đang ở trạng thái offline.

Đến đây chúng ta đã hoàn tất việc tạo bot chat discord.
Chắc hẳn có bạn sẽ thắc mắc “Ủa, vậy con bot chat này offline vậy nghịch được chi”.
Đúng vậy, chúng ta cần thiết lập server cho con bot này online và có thể thực hiện xử lý theo các điều kiện, kịch bản có sẵn.

2. Build server local run discord bot

  • Thiết lập môi trường cơ bản với ngôn ngữ Node.js như sau:
  • Tạo file index.js với nội dung sau:

Ở đây chúng ta khởi tạo client Discord dựa trên thư viện “discord.js”.
Sau đó login vô discord qua TOKEN. Vậy TOKEN này chúng ta lấy ở đâu ?

Quay trở lại trang Discord App Developer, vào Setting/Bot chúng ta có thể copy hoặc gen mới TOKEN của bot

Config lại package json để sử dụng nodemon giúp reload và build lại server mỗi khi có code thay đổi.

Start server bằng câu lệnh npm run dev
Kết quả build thành công sẽ như hình trên đây.
Quay lại server Discord “VTI Talk” chúng ta thấy bot “Trưởng thôn” đã online.
Thử gửi message “ping” vào chanel thấy bot reply “pong”, như vậy bot chat đã hoạt động bình thường.

Như vậy với chỉ vài dòng code cơ bản chúng ta đã có thể start một chat bot Discord trên server của riêng mình.
Nhưng chat bot mà lại chỉ biết “Ping” và “Pong” thôi sao ?
Bot chat còn có thể làm được nhiều hơn thế nữa trên discord và mình xin dành bài kì tới để giới thiệu cụ thể hơn về cách một bot chat hoạt động cũng như hướng dẫn làm một bot chat đơn giản như tự động search nhạc và play( Trên discord có thể play nhạc cho toàn bộ member trong cùng chanel voice nghe) hay bot auto lấy thông tin và public lên chanel.

3. Một số demo về bot chat Discord

Bot auto tìm nhạc trên youtube và play nhạc trong voice chanel
Bot tin tức: Tự động lấy thông tin trên facebook và post lên chanel

Ngoài ra còn rất nhiều loại bot khác đáp ứng nhiều nhu cầu khác nhau trên discord.
Bạn có thể tham khảo và sử dụng Discord Bot tại đây.

Cảm ơn các bạn đã theo dõi, xin hẹn gặp lại trong kì tới của series Discord.

Leave a Reply