Cách tạo Bot Discord chi tiết | Học trực tuyến CNTT, học lập trình từ cơ bản đến nâng cao

Cách tạo Bot Discord chi tiết

Chia sẻ kiến thức 31/03/2022

Discord Bot là con robot đa năng có thể vừa kể chuyện hài, phát nhạc trên sóng trực tiếp hay chào mừng thành viên mới vào máy chủ của bạn… Vậy bạn đã biết cách tạo bot Discord chưa?

bot discord

Trên Discord, mọi người có thể cộng tác chia sẻ ý tưởng, thảo luận về các dự án hay trò chuyện về cuộc sống và sở thích nói chung. Nhưng bot Discord có thể làm cho các chat room (phòng trò chuyện) của bạn trở nên thú vị hơn ngoài việc tự động hóa các tác vụ, ví dụ như kể chuyện cười, bật một bản nhạc… Bài viết này sẽ chỉ bạn cách để tạo Discord Bot chi tiết nhất.

1. Tạo máy chủ Discord.

Trước khi tạo bot Discord, bạn phải bắt đầu bằng cách tạo một máy chủ, vì đây là nơi chỉ định để đặt bot. Máy chủ Discord hoặc chat room là không gian nơi bạn quản lý các kênh và thông tin liên lạc trên nền tảng.

Để tạo máy chủ Discord, hãy truy cập trang web Discord và đăng nhập vào Discord dashboard (bảng điều khiển), hoặc tạo tài khoản nếu bạn chưa có.

Sau khi đăng nhập xong, hãy làm theo các bước sau để tạo máy chủ Discord:

  1. Nhấp vào biểu tượng dấu cộng (+) trên thanh công cụ bên trái.bot discord
  2. Chọn tùy chọn Create My Own.bot discord
  3. Chọn mục đích tạo máy chủ.
  4. Tùy chỉnh máy chủ bằng ảnh hồ sơ và tên. Sau đó nhấp vào Createbot discord

Giờ đây bạn đã tạo một máy chủ Discord và sẵn sàng tạo một bot để kiểm soát một số hoạt động trên đó.

>>> Xem thêm: Virus Discord là gì? Loại bỏ Virus Discord như thế nào?

2. Thiết lập và tạo bot Discord.

Tiếp theo, bạn có thể tạo bot Discord trong ứng dụng Discord bằng cách truy cập Cổng thông tin nhà phát triển Discord (Discord Developer Portal) hoặc nhập URL sau vào trình duyệt:

https://discord.com/developers/applications

  1. Nhấp vào tùy chọn New Application ở trên cùng bên tráibot discord
  2. Ở mục NAME bạn cần điền tên ứng dụng vào và chọn Create.bot discord
  3. Nhìn sang thanh bên trái và chọn Bot.
  4. Nhấp vào Thêm Bot (add bot) ở phía trên bên phải.bot discord
  5. Khi lời nhắc hiện ra, bạn chọn Yes, do it!bot discord
  6. Nhấp vào Sao chép (copy) để sao chép mã thông báo bot. Tạo một tệp văn bản bên trong dự án và dán mã vào đó. Bạn có thể đặt tên tệp là secret.txt. Nên nhớ bạn không nên tiết lộ mã thông báo đã sao chép.
  7. Kéo xuống và gạt sang phải hai tùy chọn PRESENCE INTENTSERVER MEMBERS INTENTbot discord
  8. Tiếp theo, nhấp vào OAuth2 trên thanh bên trái để thêm các ưu tiên xác thực vào bot Discord..
  9. Chọn Trình tạo URL (URL Generator) để tạo URL mời bot cho máy chủ bạn đã tạo trước đó.
  10. Từ các tùy chọn trong SCOPES, chọn bot.bot discord
  11. Kéo xuống phần BOT PERMISSION và chọn vai trò cho bot Discord. Trong trường hợp này, chúng ta sẽ cấp cho nói vai trò Quản trị viên (Administrator).bot discord
  12. Kéo xuống dưới cùng và nhấp vào SAO CHÉP (COPY) để sao chép URL đã tạo vào khay nhớ tạm.

Tiếp theo, chúng ta sẽ liên kết máy chủ với bot.

Liên kết Máy chủ với Bot Discord của bạn

Như đã đề cập ở trên, bot hoạt động chủ yếu bên trong máy chủ, nên sau khi tạo bot xong bạn cần gán nó cho một máy chủ để hoạt động.

Vì vậy, khi bạn sao chép URL đã tạo, hãy làm theo các bước tiếp theo sau để liên kết chat room với bot Discord:

  1. Dán URL đã sao chép vào trường địa chỉ của trình duyệt và đăng nhập vào đó.
  2. Máy hiện lời nhắc, hãy nhấp vào Select a server và chọn máy chủ đã tạo.bot discord
  3. Nhấn Tiếp tục (Continue) để đến bước tiếp theo.
  4. Bạn sẽ thấy một menu mới với danh sách các quyền mà bạn đã đặt trước đó. Chọn Authorized.bot discord
  5. Nhập mã CAPTCHA để hoàn tất việc cấp phép cho bot Discord.

Bây giờ bạn đã tạo một bot Discord. Quay lại dashboard và bạn sẽ thấy biểu tượng rô-bốt ở thanh bên phải. Robot sẽ đi vào hoạt động chính thức sau khi bạn lập trình kịch bản hoạt động cho nó.

Để làm cho bot hoạt động, bạn cần viết một tập lệnh bằng bất kỳ ngôn ngữ lập trình nào phù hợp nhất với bạn.

>>> Xem thêm: Cách khắc phục cập nhật Discord không thành công trên Windows

3. Lập trình Bot Discord bằng Python

bot discord
Lập trình Bot Discord bằng Python

Đối với hướng dẫn này, chúng tôi sẽ sử dụng Python và lưu trữ bot Discord trên máy cục bộ. Bạn có thể lưu trữ lệnh của mình trên các dịch vụ đám mây như Heroku nếu muốn sau khi mọi thứ được thiết lập..

Thiết lập Python và Thư viện

Để lập trình bot Discord với Python, bạn sẽ sử dụng mô-đun discord.py, mô-đun này chỉ hoạt động với Python 3.5.3 trở lên. Nếu bạn đang sử dụng Python phiên bản cũ hơn, có thể truy cập vào Python.org để tải xuống phiên bản mới nhất.

Bạn kiểm tra Python được cài trên PC cá nhân bằng cách nhập dòng lệnh sau vào terminal:

python --version

Nếu Python đang là phiên bản mới nhất, hãy mở terminal vào thư mục gốc dự án và kích hoạt một môi trường ảo Python. Ngoài ra, bạn sẽ phải cài đặt discord.py và một gói hỗ trợ giọng nói có tên là discord.py [voice].

Với môi trường ảo đang hoạt động, hãy chạy lệnh sau trong terminal để cài đặt các gói sau:

pip install -U discord.py discord.py[voice]

Gửi tin nhắn với bot Discord

bot discord
Gửi tin nhắn với Bot Discord

Tại đây, bạn sẽ lập trình bot Discord để trả lời bằng một tin nhắn tùy chỉnh khi bạn gửi tin nhắn trong một kênh.

Nhưng trước tiên, hãy nhập mã sau vào đầu tập lệnh để khởi chạy bot Discord:

import discord 

# Import the commands module: 

from discord.ext import commands

# Initialize the bot instance and use a blank prefix: 

bot = commands.Bot(command_prefix="") 

#Read your bot token from the txt file in your project root:

Secret = open("secret.txt", 'r')

Secret = Secret.read()

#Run the bot in an event loop:

bot.run(Secret)

Biến bot gọi các lệnh tùy chỉnh từ lớp lệnh và tiền tố command_prefix  trong dấu ngoặc đơn cho phép bạn chỉ định một ký tự đứng trước nó. Các ký tự như dấu đô la ($), dấu chấm than (!), Dấu và (&),… là các tiền tố phổ biến đặt trước lệnh bot.

Sử dụng hàm decorator @ bot.command () để tạo lệnh tùy chỉnh “Xin chào” và cung cấp nội dung trả lời cho bot Discord như sau:

Lưu ý rằng các lệnh tùy chỉnh là các hàm Python:

import discord 

# Import the commands module: 

from discord.ext import commands

# Initialize the bot instance: 

bot = commands.Bot(command_prefix="")

@bot.command()

async def Hi(ctx):

 await ctx.send("Hi, welcome to our server")

Secret = open("secret.txt", 'r')

Secret = Secret.read()

bot.run(Secret)

Bây giờ hãy chạy tập lệnh Python trong terminal, vào Discord và gửi “Hi” để xem kết quả.

Trong trường hợp này, FUNiX sử dụng phương thức async await để phục vụ hàm vì đó là cách duy nhất để mô-đun giao tiếp với Discord. Hàm ctx trong từng phiên và ngữ cảnh cụ thể có thể có nhiều chức năng khác nhau, như trong trường hợp này, nó cho phép bot Discord có thể gửi tin nhắn.

Mời thành viên tham gia Bot

Trong ví dụ này, bạn sẽ biết cách sử dụng event để kích hoạt lời chào khi ai đó tham gia máy chủ của bạn. Bạn cũng sẽ học cách hiển thị tên người dùng của một thành viên mới và máy chủ mà họ đã tham gia trong tin nhắn chào mừng. Chúng ta sẽ sử dụng lệnh @bot.event. Dưới đây cách làm chi tiết:

@bot.event

async def on_member_join(member):

 guild = member.guild

 if guild.system_channel is not None:

 detailMessage = 'We welcome {0.mention} to the {1.name}!'.format(member, guild)

 await guild.system_channel.send(detailMessage)

Hàm on_member_join hay on_ready là một sự kiện thường được sử dụng để kiểm tra xem một bot đã sẵn sàng hay chưa. Hàm on_member_join được xem là một loại của sự kiện. Ngoài ra bạn có thể sử dụng phương pháp phổ biến hơn như on_ready để kiểm tra Bot hoạt động hay chưa.

Hơn nữa, điều kiện theo sau câu lệnh if sẽ kiểm tra xem máy chủ được kết nối (guild hoặc chat room) có tồn tại hay không. Nếu có, nó sử dụng phương thức định dạng chuỗi Python để xuất tên người dùng của thành viên mới và máy chủ mà họ đã tham gia. 

Bây giờ hãy nhờ một người bạn tham gia vào máy chủ của bạn để xem điều gì sẽ xảy ra. Tuy nhiên, bạn có thể muốn thử trước với một tài khoản Discord giả để đảm bảo rằng nó hoạt động.

>>> Xem thêm: Cách ngăn Discord khởi chạy khi bật Windows

Yêu cầu Bot Discord tham gia hoặc rời khỏi kênh âm thanh

Bạn sẽ yêu cầu bot của mình tham gia hoặc rời khỏi kênh âm thanh (audio channel) khi nó nhận được một lệnh cụ thể.

Trong ví dụ bên dưới, bot Discord sẽ đưa bạn đến với kênh âm thanh khi bạn nhập “enter”:

@bot.command()

async def enter(ctx):

 if ctx.author.voice:

 await ctx.message.author.voice.channel.connect()

Điều kiện trong câu lệnh if sẽ kiểm tra xem bạn đã tham gia một kênh âm thanh chưa. Nếu rồi, từ khóa await sẽ kết nối bot Discord với kênh đó. 

Điều này có nghĩa là bạn phải tham gia một kênh âm thanh trước khi lệnh có thể chạy thành công.

Lưu ý: Đảm bảo rằng bạn dừng và khởi động lại tập lệnh Python sau mỗi lần cập nhật. Nó cho phép Python đồng bộ hóa các thay đổi của bạn.

Khi bạn thực thi lại tập lệnh Python, hãy mở Discord và nhập enter. Lúc này Bot Discord đã được kết nối với một kênh âm thanh.

Nếu bạn muốn Bot Discord ngắt kết nối với Audio Channel, bạn có thể nhập dòng lệnh dưới đây:

@bot.command()

async def leave(ctx):

 if ctx.voice_client:

 await ctx.guild.voice_client.disconnect()

Tiếp tục cải thiện Bot Discord 

Sau khi làm theo các hướng dẫn trên, bạn đã tự tạo một Bot Discord với đầy đủ chức năng để phục vụ nhu cầu cá nhân. Để có thêm nhiều tính năng hơn bạn hoàn toàn có thể thêm vào và cải thiện bot của mình. Hy vọng bạn đọc sẽ có nhiều trải nghiệm thú vị khi sử dụng Discord Bot.

>>> Nếu bạn đang có nhu cầu tìm hiểu về khóa học lập trình đi làm ngay. Hãy liên hệ với FUNiX ngay tại đây:

>>> Xem thêm chuỗi bài viết liên quan:

Cách đặt câu hỏi, tra cứu từ khoá và bật tắt thông báo trên hệ thống Discord FUNiX

Hơn 10 nghìn học viên FUNiX được trang bị ứng dụng lọc âm thanh AI

Những cơ sở giáo dục tại Việt Nam tiên phong ứng dụng ChatGPT

Những ứng dụng của trí tuệ nhân tạo (AI) có thể bạn không ngờ tới

Khánh Huyền (Theo Makeuseof)

https://www.makeuseof.com/how-to-make-discord-bot/

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại