Discord là một công cụ tuyệt vời để trò chuyện với cộng đồng (ban đầu là các game thủ, nhưng bây giờ đã mở rộng hơn với những nhóm khác). Bạn có thể sử dụng webhook và bot để tương tác với máy chủ.
Hôm nay, Quantrimang.com sẽ cùng bạn đọc xem cách thực hiện điều này trên Raspberry Pi với Python.
Đăng ký tài khoản
Nếu bạn không có tài khoản, đây là cách đăng ký:
- Truy cập Discord.com và nhấp vào Login, sau đó chọn Register.
- Điền vào mẫu sau trên trang web:
- Sau khi đăng nhập, trực tiếp tạo một máy chủ mới.
- Sau đó, chọn tên và biểu tượng.
Bạn đã có tài khoản và máy chủ của mình. Bây giờ, bạn có thể chuyển bước tiếp theo. Đừng quên xác nhận địa chỉ email của bạn vì nó là điều kiện bắt buộc để tạo bot.
Tạo một ứng dụng
Bạn cần khai báo một ứng dụng mới trước khi tạo bot:
- Bắt đầu với việc mở bảng điều khiển dành cho nhà phát triển của Discord bằng cách nhấp vào đây.
Nó trông như thế này:
- Tạo một ứng dụng mới bằng cách nhấp vào nút trên cùng bên phải
- Chọn một cái tên.
Bot của bạn sẽ lấy tên ứng dụng. Vì vậy, “test” hay “myfirstapp” có lẽ không phải là ý kiến hay.
- Để tạo ứng dụng, bạn cần phải xác nhận email của mình.
Ứng dụng đã được tạo, bây giờ, bạn có thể tạo một bot mới.
Tạo một bot
- Nhấp vào Bot trong menu bên trái.
- Sau đó nhấp vào Add bot và chấp nhận thông báo xác nhận.
- Một bot đã được tạo tự động liên kết với ứng dụng của bạn.
Mời bot trên máy chủ
Bước cuối cùng là mời bot tham gia máy chủ của bạn:
- Điều đầu tiên là truy cập URL này:
https://discord.com/api/oauth2/authorize?client_id=<CLIENTID>&scope=bot&permissions=1
Thay thế <CLIENTID> bằng client ID của bạn, bạn có thể tìm thấy nó trên trang ứng dụng.
- Trên trang mở ra, chọn máy chủ để tham gia:
- Bấm vào Continue.
- Sau đó bấm vào Authorization trên màn hình tiếp theo.
Bot đã được kết nối trên máy chủ. Bạn có thể kiểm tra trên máy chủ của mình:
Phần trên Discord hiện đã hoàn thành, bạn đã có mọi thứ mình cần để bắt đầu làm việc trên Raspberry Pi.
Code bot trên Raspberry Pi
Mục tiêu ở đây là tạo ra một “bộ não” cho bot của bạn. Còn bây giờ, nó không thể làm bất cứ điều gì.
Sau một vài điều kiện tiên quyết, phần chính là tạo ra một script phù hợp với nhu cầu của bạn.
Hệ điều hành
Ví dụ đã sử dụng Raspberry Pi OS Lite để làm điều này, nhưng bất kỳ hệ thống nào cũng có thể ổn, vì bạn chỉ cần Python.
Như mọi khi, đừng quên cập nhật hệ thống của bạn trước khi đi xa hơn:
sudo apt update
sudo apt upgrade
Điều kiện tiên quyết của Python
Bạn cần cài đặt một vài gói Python:
sudo apt install python3-pip python3-cffi
PIP là trình quản lý tiện ích mở rộng Python và CFFI là interface giữa C và Python mà thư viện sử dụng.
Python 3 là bắt buộc vì thư viện không hoạt động với các phiên bản cũ hơn.
Vì vậy, nó là python3-pip, chứ không phải python-pip.
Về cơ bản, với lệnh này, apt sẽ cài đặt tất cả các gói cần thiết khác.
Sau đó, cập nhật setuptools để đảm bảo bạn có phiên bản mới nhất (nếu bạn đã có PIP trên hệ thống của mình trước đó)
sudo pip3 install -U setuptools
Thư viện
Để giữ mọi thứ đơn giản, bạn sẽ sử dụng thư viện để tương tác với Discord
Cái bài viết đã chọn là Discord.py từ kho GitHub này bởi vì nó rất dễ sử dụng.
Để cài đặt nó, chỉ cần sao chép lệnh này:
sudo pip3 install discord.py
Script cơ bản đầu tiên
Bài viết sẽ bắt đầu bằng một ví dụ ngắn về cách thư viện này hoạt động, vì vậy bạn có thể kiểm tra xem mọi thứ trong cấu hình có tốt không và chuyển sang việc tạo các dự án của mình.
Khi ở trên Raspbian Lite, ví dụ sử dụng Nano làm trình chỉnh sửa, nhưng bạn có thể sử dụng tùy chọn mà bạn thích.
Ví dụ, trên Raspberry Pi OS Desktop, bạn có thể sao chép và dán code trong Thorny hoặc trình chỉnh sửa khác.
Mở trình soạn thảo của bạn và tạo một file mới:
nano MyFirstApp.py
Sao chép và dán các dòng này:
import discord
from discord.ext import commands
bot = commands.Bot(command_prefix='>')
@bot.command()
async def ping(ctx):
await ctx.send('pong')
bot.run('token')
Đây là một ví dụ từ kho GitHub, xem thêm tại đây.
Về cơ bản, mục tiêu là để trả lời pong khi có ai đó chạy lệnh ping.
- Hai dòng đầu tiên ở đây để nhập các điều kiện tiên quyết cần thiết từ thư viện.
- Sau đó, tiền tố để phát hiện một lệnh (“>”) được khai báo.
- Block tiếp theo là xác định lệnh bạn đang chờ và phải làm gì nếu nhận được nó. Cú pháp sẽ giống nhau cho mỗi lệnh bạn thêm sau đó.
Cuối cùng, ví dụ chạy bot với các tham số này.
Đây là lệnh để chạy bot nếu bạn không có trình soạn thảo thực hiện việc này:
python3 MyFirstApp.py
Hãy thay đổi tên cho phù hợp với cái bạn đã tạo.
Code này khá dễ đọc, và bạn không cần nhiều thứ khác nữa để thực hiện những điều thú vị.
Nếu đã có một số kiến thức cơ bản trong Python, bạn có thể thêm một vài dòng trước dòng “await” và gửi biến văn bản thay vì một từ tĩnh ( ví dụ >ping => 40ms để giám sát Internet hoặc máy khác) chẳng hạn.