【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:
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.
Đế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:
1
2
3
4
5
6
|
mkdir bot-chat # create folder source
cd bot-chat
npm init -y # general minimal package.json file
npm install discord.js # install library discord js
npm install nodemon --save-dev
|
- Tạo file
index.js
với nội dung sau:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
// init discord client
const Discord = require("discord.js")
const client = new Discord.Client()
// if login success, write log with bot name
client.on('ready', () => {
console.log(`Logged in as ${client.user.tag}!`)
})
client.on('message', msg => {
if (msg.content === 'ping') {
msg.reply('Pong!')
}
})
client.on('guildMemberAdd', member => {
member.send(`Chào mừng thanh niên đến với VTI Talk.`)
})
// login discord with token
client.login(BOT_TOKEN)
|
Ở đâ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 ?
Config lại package json để sử dụng nodemon giúp reload và build lại server mỗi khi có code thay đổi.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
{
"name": "discord_bot",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node index.js",
"dev": "nodemon index.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"discord.js": "^11.4.2",
"dotenv": "^7.0.0"
},
"devDependencies": {
"nodemon": "^1.18.10"
}
}
|
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
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.