Con trăn selectmenu

Trong một thế giới mà trò chơi điện tử rất quan trọng đối với rất nhiều người, giao tiếp và cộng đồng xung quanh trò chơi là rất quan trọng. Discord cung cấp cả hai thứ đó và hơn thế nữa trong một gói được thiết kế tốt. Trong hướng dẫn này, bạn sẽ học cách tạo bot Discord bằng Python để bạn có thể tận dụng tối đa nền tảng tuyệt vời này

Đến cuối bài viết này, bạn sẽ học được

  • Discord là gì và tại sao nó lại có giá trị như vậy
  • Cách tạo bot Discord thông qua Cổng thông tin dành cho nhà phát triển
  • Cách tạo kết nối Discord
  • Cách xử lý các sự kiện
  • Cách chấp nhận lệnh và xác thực các giả định
  • Cách tương tác với các API Discord khác nhau

Bạn sẽ bắt đầu bằng cách tìm hiểu Discord là gì và tại sao nó lại có giá trị

Bất hòa là gì?

Discord là một nền tảng giao tiếp bằng giọng nói và văn bản dành cho game thủ

Người chơi, người phát trực tuyến và nhà phát triển sử dụng Discord để thảo luận về trò chơi, trả lời câu hỏi, trò chuyện trong khi họ chơi, v.v. Nó thậm chí còn có một cửa hàng trò chơi, hoàn chỉnh với các bài đánh giá quan trọng và dịch vụ đăng ký. Nó gần như là một cửa cho cộng đồng chơi game

Mặc dù có nhiều thứ bạn có thể xây dựng bằng cách sử dụng API của Discord, hướng dẫn này sẽ tập trung vào một kết quả học tập cụ thể. cách tạo bot Discord bằng Python

Loại bỏ các quảng cáo

Bot là gì?

Discord ngày càng phổ biến. Do đó, các quy trình tự động, chẳng hạn như cấm người dùng không phù hợp và phản hồi yêu cầu của người dùng là rất quan trọng để cộng đồng phát triển và lớn mạnh

Các chương trình tự động trông giống như người dùng và tự động phản hồi các sự kiện và lệnh trên Discord được gọi là người dùng bot. Người dùng bot Discord [hoặc chỉ bot] có các ứng dụng gần như không giới hạn

Ví dụ: giả sử bạn đang quản lý một bang hội Discord mới và một người dùng tham gia lần đầu tiên. Rất vui, bạn có thể liên hệ trực tiếp với người dùng đó và chào mừng họ đến với cộng đồng của bạn. Bạn cũng có thể nói với họ về các kênh của bạn hoặc yêu cầu họ giới thiệu về bản thân

Người dùng cảm thấy được chào đón và thích các cuộc thảo luận diễn ra trong bang hội của bạn và đến lượt họ, họ sẽ mời bạn bè

Theo thời gian, cộng đồng của bạn phát triển lớn đến mức không còn khả thi để tiếp cận trực tiếp với từng thành viên mới, nhưng bạn vẫn muốn gửi cho họ thứ gì đó để công nhận họ là thành viên mới của bang hội

Với bot, có thể tự động phản ứng với thành viên mới gia nhập bang hội của bạn. Bạn thậm chí có thể tùy chỉnh hành vi của nó dựa trên ngữ cảnh và kiểm soát cách nó tương tác với từng người dùng mới

Điều này thật tuyệt, nhưng đó chỉ là một ví dụ nhỏ về cách bot có thể hữu ích. Có rất nhiều cơ hội để bạn sáng tạo với bot, một khi bạn biết cách tạo ra chúng

Ghi chú. Mặc dù Discord cho phép bạn tạo các bot xử lý giao tiếp bằng giọng nói, nhưng bài viết này sẽ tập trung vào khía cạnh văn bản của dịch vụ

Có hai bước chính khi bạn tạo bot

  1. Tạo người dùng bot trên Discord và đăng ký nó với một bang hội
  2. Viết mã sử dụng API của Discord và triển khai các hành vi của bot của bạn

Trong phần tiếp theo, bạn sẽ tìm hiểu cách tạo bot Discord trong Cổng thông tin dành cho nhà phát triển Discord

Cách tạo Bot Discord trong Cổng thông tin dành cho nhà phát triển

Trước khi bạn có thể đi sâu vào bất kỳ mã Python nào để xử lý các sự kiện và tạo tự động hóa thú vị, trước tiên bạn cần tạo một vài thành phần Discord

  1. Một tài khoản
  2. Một ứng dụng
  3. bot
  4. một bang hội

Bạn sẽ tìm hiểu thêm về từng phần trong các phần sau

Khi bạn đã tạo tất cả các thành phần này, bạn sẽ liên kết chúng lại với nhau bằng cách đăng ký bot của mình với bang hội của bạn

Bạn có thể bắt đầu bằng cách truy cập Cổng thông tin dành cho nhà phát triển của Discord

Tạo tài khoản Discord

Điều đầu tiên bạn sẽ thấy là một trang đích nơi bạn sẽ cần đăng nhập, nếu bạn có tài khoản hiện có hoặc tạo tài khoản mới

Nếu bạn cần tạo tài khoản mới thì nhấn vào nút Đăng ký bên dưới Đăng nhập và nhập thông tin tài khoản

Quan trọng. Bạn sẽ cần xác minh email của mình trước khi có thể tiếp tục

Sau khi hoàn tất, bạn sẽ được chuyển hướng đến trang chủ Cổng thông tin dành cho nhà phát triển, nơi bạn sẽ tạo ứng dụng của mình

Loại bỏ các quảng cáo

Tạo một ứng dụng

Một ứng dụng cho phép bạn tương tác với API của Discord bằng cách cung cấp mã thông báo xác thực, chỉ định quyền, v.v.

Để tạo một ứng dụng mới, chọn Ứng dụng mới

Tiếp theo, bạn sẽ được nhắc đặt tên cho ứng dụng của mình. Chọn tên và nhấp vào Tạo

Xin chúc mừng. Bạn đã tạo một ứng dụng Discord. Trên màn hình kết quả, bạn có thể xem thông tin về ứng dụng của mình

Hãy nhớ rằng bất kỳ chương trình nào tương tác với API Discord đều yêu cầu ứng dụng Discord, không chỉ bot. Các API liên quan đến bot chỉ là một tập hợp con trong tổng số giao diện của Discord

Tuy nhiên, vì hướng dẫn này là về cách tạo bot Discord, hãy điều hướng đến tab Bot trên danh sách điều hướng bên trái

Tạo một Bot

Như bạn đã tìm hiểu trong các phần trước, người dùng bot là người lắng nghe và tự động phản ứng với các sự kiện và lệnh nhất định trên Discord

Để mã của bạn thực sự được hiển thị trên Discord, bạn sẽ cần tạo người dùng bot. Để làm như vậy, hãy chọn Thêm Bot

Khi bạn xác nhận rằng bạn muốn thêm bot vào ứng dụng của mình, bạn sẽ thấy người dùng bot mới trong cổng thông tin

Lưu ý rằng, theo mặc định, người dùng bot của bạn sẽ kế thừa tên ứng dụng của bạn. Thay vào đó, hãy cập nhật tên người dùng thành thứ gì đó giống bot hơn, chẳng hạn như

$ pip install -U python-dotenv
7 và Lưu thay đổi

Bây giờ, bot đã sẵn sàng hoạt động, nhưng đến đâu?

Người dùng bot sẽ không hữu ích nếu nó không tương tác với người dùng khác. Tiếp theo, bạn sẽ tạo bang hội để bot của bạn có thể tương tác với những người dùng khác

Loại bỏ các quảng cáo

Tạo bang hội

Bang hội [hoặc máy chủ, như thường được gọi trong giao diện người dùng của Discord] là một nhóm kênh cụ thể nơi người dùng tụ tập để trò chuyện

Ghi chú. Mặc dù bang hội và máy chủ có thể hoán đổi cho nhau, bài viết này sẽ sử dụng thuật ngữ bang hội chủ yếu vì các API dính vào cùng một thuật ngữ. Thuật ngữ máy chủ sẽ chỉ được sử dụng khi đề cập đến bang hội trong giao diện người dùng đồ họa

Ví dụ: giả sử bạn muốn tạo một không gian nơi người dùng có thể gặp nhau và nói về trò chơi mới nhất của bạn. Bạn sẽ bắt đầu bằng cách tạo bang hội. Sau đó, trong bang hội của bạn, bạn có thể có nhiều kênh, chẳng hạn như

  • thảo luận chung. Một kênh để người dùng nói về bất cứ điều gì họ muốn
  • Kẻ phá hoại, Hãy coi chừng. Một kênh dành cho những người dùng đã hoàn thành trò chơi của bạn để nói về tất cả các tiết lộ về kết thúc trò chơi
  • thông báo. Một kênh để bạn thông báo các bản cập nhật trò chơi và để người dùng thảo luận về chúng

Khi bạn đã tạo bang hội của mình, bạn sẽ mời những người dùng khác tham gia vào bang hội đó

Vì vậy, để tạo bang hội, hãy truy cập trang chủ Discord của bạn

Từ trang chủ này, bạn có thể xem và thêm bạn bè, tin nhắn trực tiếp và bang hội. Từ đây, chọn biểu tượng + ở phía bên trái của trang web để Thêm máy chủ

Thao tác này sẽ hiển thị hai tùy chọn, Tạo máy chủ và Tham gia máy chủ. Trong trường hợp này, hãy chọn Tạo máy chủ và nhập tên cho bang hội của bạn

Khi bạn đã hoàn thành việc tạo bang hội của mình, bạn sẽ có thể thấy người dùng ở phía bên tay phải và các kênh ở bên trái

Bước cuối cùng trên Discord là đăng ký bot của bạn với bang hội mới của bạn

Thêm Bot vào Bang hội

Bot không thể chấp nhận lời mời như người dùng bình thường có thể. Thay vào đó, bạn sẽ thêm bot của mình bằng giao thức OAuth2

Chi tiết kỹ thuật. OAuth2 là một giao thức để xử lý ủy quyền, trong đó một dịch vụ có thể cấp cho ứng dụng khách quyền truy cập hạn chế dựa trên thông tin đăng nhập của ứng dụng và phạm vi được phép

Để làm như vậy, hãy quay lại Cổng thông tin dành cho nhà phát triển và chọn trang OAuth2 từ điều hướng bên trái

Từ cửa sổ này, bạn sẽ thấy Trình tạo URL OAuth2

Công cụ này tạo một URL ủy quyền truy cập API OAuth2 của Discord và cho phép truy cập API bằng thông tin đăng nhập của ứng dụng của bạn

Trong trường hợp này, bạn sẽ muốn cấp cho người dùng bot của ứng dụng quyền truy cập vào API Discord bằng thông tin xác thực OAuth2 của ứng dụng của bạn

Để thực hiện việc này, hãy cuộn xuống và chọn bot từ các tùy chọn PHẠM VI và Quản trị viên từ QUYỀN BOT

Giờ đây, Discord đã tạo URL ủy quyền cho ứng dụng của bạn với phạm vi và quyền đã chọn

từ chối trách nhiệm. Mặc dù chúng tôi đang sử dụng Quản trị viên cho các mục đích của hướng dẫn này, bạn nên càng chi tiết càng tốt khi cấp quyền trong một ứng dụng trong thế giới thực

Chọn Sao chép bên cạnh URL được tạo cho bạn, dán nó vào trình duyệt của bạn và chọn bang hội của bạn từ các tùy chọn thả xuống

Nhấp vào Ủy quyền và bạn đã hoàn tất

Ghi chú. Bạn có thể nhận được reCAPTCHA trước khi tiếp tục. Nếu vậy, bạn sẽ cần phải chứng minh bạn là một con người

Nếu bạn quay lại bang hội của mình, thì bạn sẽ thấy rằng bot đã được thêm vào

Tóm lại, bạn đã tạo

  • Một ứng dụng mà bot của bạn sẽ sử dụng để xác thực bằng API của Discord
  • Người dùng bot mà bạn sẽ sử dụng để tương tác với những người dùng và sự kiện khác trong bang hội của mình
  • Bang hội trong đó tài khoản người dùng và người dùng bot của bạn sẽ hoạt động
  • Tài khoản Discord mà bạn đã tạo mọi thứ khác và bạn sẽ sử dụng để tương tác với bot của mình

Bây giờ, bạn đã biết cách tạo bot Discord bằng Cổng thông tin dành cho nhà phát triển. Tiếp theo là những điều thú vị. triển khai bot của bạn bằng Python

Loại bỏ các quảng cáo

Cách tạo Bot Discord bằng Python

Vì bạn đang học cách tạo bot Discord bằng Python, nên bạn sẽ sử dụng

$ pip install -U python-dotenv
8

$ pip install -U python-dotenv
8 là một thư viện Python triển khai triệt để các API của Discord theo cách hiệu quả và đậm chất Pythonic. Điều này bao gồm việc sử dụng triển khai Async IO của Python

Bắt đầu bằng cách cài đặt

$ pip install -U python-dotenv
8 với
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
1

$ pip install -U discord.py

Bây giờ bạn đã cài đặt

$ pip install -U python-dotenv
8, bạn sẽ sử dụng nó để tạo kết nối đầu tiên với Discord

Tạo kết nối bất hòa

Bước đầu tiên trong việc triển khai người dùng bot của bạn là tạo kết nối với Discord. Với

$ pip install -U python-dotenv
8, bạn làm điều này bằng cách tạo một thể hiện của
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]

$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4 là một đối tượng đại diện cho kết nối với Discord. Một
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4 xử lý các sự kiện, theo dõi trạng thái và thường tương tác với API Discord

Tại đây, bạn đã tạo một

$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4 và triển khai trình xử lý sự kiện
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
8 của nó, trình xử lý sự kiện này khi
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4 đã thiết lập kết nối với Discord và nó đã hoàn tất việc chuẩn bị dữ liệu mà Discord đã gửi, chẳng hạn như trạng thái đăng nhập, bang hội và dữ liệu kênh,

Nói cách khác,

$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
8 sẽ được gọi [và tin nhắn của bạn sẽ được in] sau khi
$ pip install -U python-dotenv
61 sẵn sàng cho hành động tiếp theo. Bạn sẽ tìm hiểu thêm về trình xử lý sự kiện sau trong bài viết này

Khi bạn đang làm việc với các bí mật chẳng hạn như mã thông báo Discord của mình, bạn nên đọc nó vào chương trình của mình từ một biến môi trường. Sử dụng các biến môi trường giúp bạn

  • Tránh đưa các bí mật vào kiểm soát nguồn
  • Sử dụng các biến khác nhau cho môi trường phát triển và sản xuất mà không thay đổi mã của bạn

Mặc dù bạn có thể

$ pip install -U python-dotenv
62, nhưng một giải pháp dễ dàng hơn là lưu tệp
$ pip install -U python-dotenv
63 trên tất cả các máy sẽ chạy mã này. Điều này không chỉ dễ dàng hơn, vì bạn sẽ không phải
$ pip install -U python-dotenv
64 mã thông báo của mình mỗi khi xóa vỏ mà còn bảo vệ bạn khỏi việc lưu trữ bí mật trong lịch sử vỏ của bạn

Tạo một tệp có tên

$ pip install -U python-dotenv
63 trong cùng thư mục với
$ pip install -U python-dotenv
66

$ pip install -U python-dotenv
2

Bạn sẽ cần thay thế

$ pip install -U python-dotenv
67 bằng mã thông báo bot của mình. Bạn có thể nhận được mã này bằng cách quay lại trang Bot trên Cổng thông tin dành cho nhà phát triển và nhấp vào Sao chép trong phần TOKEN

Nhìn lại mã

$ pip install -U python-dotenv
66, bạn sẽ nhận thấy một thư viện có tên là
$ pip install -U python-dotenv
69. Thư viện này rất hữu ích để làm việc với các tệp
$ pip install -U python-dotenv
63.
$ pip install -U python-dotenv
71 tải các biến môi trường từ tệp
$ pip install -U python-dotenv
63 vào các biến môi trường của trình bao của bạn để bạn có thể sử dụng chúng trong mã của mình

Cài đặt

$ pip install -U python-dotenv
69 với
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
1

$ pip install -U python-dotenv

Cuối cùng,

$ pip install -U python-dotenv
75 chạy
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4 của bạn bằng cách sử dụng mã thông báo bot của bạn

Bây giờ bạn đã thiết lập cả

$ pip install -U python-dotenv
66 và
$ pip install -U python-dotenv
63, bạn có thể chạy mã của mình

$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!

Tuyệt quá.

$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4 của bạn đã kết nối với Discord bằng mã thông báo bot của bạn. Trong phần tiếp theo, bạn sẽ xây dựng dựa trên
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4 này bằng cách tương tác với nhiều API Discord hơn

Loại bỏ các quảng cáo

Tương tác với Discord API

Sử dụng

$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4, bạn có quyền truy cập vào nhiều loại API Discord

Ví dụ: giả sử bạn muốn viết tên và số nhận dạng của bang hội mà bạn đã đăng ký người dùng bot của mình vào bảng điều khiển

Trước tiên, bạn sẽ cần thêm một biến môi trường mới

$ pip install -U python-dotenv
6

Đừng quên rằng bạn sẽ cần thay thế hai phần giữ chỗ bằng các giá trị thực

  1. $ pip install -U python-dotenv
    
    67
  2. $ python bot.py
    RealPythonTutorialBot#9643 has connected to Discord!
    
    23

Hãy nhớ rằng Discord gọi

$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
8 mà bạn đã sử dụng trước đây, sau khi
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4 đã tạo kết nối và chuẩn bị dữ liệu. Vì vậy, bạn có thể dựa vào dữ liệu bang hội có sẵn bên trong
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
8

$ pip install -U python-dotenv
7

Tại đây, bạn đã lặp lại dữ liệu bang hội mà Discord đã gửi

$ pip install -U python-dotenv
61, cụ thể là
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
28. Sau đó, bạn tìm thấy bang hội có tên phù hợp và in ra một chuỗi được định dạng thành
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
29

Ghi chú. Mặc dù tại thời điểm này, bạn có thể khá tự tin trong hướng dẫn rằng bot của bạn chỉ được kết nối với một bang hội duy nhất [vì vậy

$ pip install -U discord.py
00 sẽ đơn giản hơn], điều quan trọng là phải nhận ra rằng một người dùng bot có thể được kết nối với nhiều bang hội

Do đó, một giải pháp mạnh mẽ hơn là lặp qua

$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
28 để tìm cái bạn đang tìm kiếm

Chạy chương trình để xem kết quả

$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
2

Tuyệt quá. Bạn có thể thấy tên bot của mình, tên máy chủ của bạn và số nhận dạng của máy chủ

Một phần dữ liệu thú vị khác mà bạn có thể lấy từ bang hội là danh sách người dùng là thành viên của bang hội

$ pip install -U discord.py
0

Bằng cách lặp qua

$ pip install -U discord.py
02, bạn đã lấy tên của tất cả các thành viên của bang hội và in chúng bằng một chuỗi được định dạng

Khi bạn chạy chương trình, ít nhất bạn sẽ thấy tên của tài khoản mà bạn đã tạo bang hội và tên của chính người dùng bot

$ pip install -U discord.py
5

Những ví dụ này hầu như không làm trầy xước bề mặt của các API có sẵn trên Discord, hãy nhớ xem tài liệu của họ để xem tất cả những gì họ cung cấp

Tiếp theo, bạn sẽ tìm hiểu về một số hàm tiện ích và cách chúng có thể đơn giản hóa các ví dụ này

Loại bỏ các quảng cáo

Sử dụng chức năng tiện ích

Hãy cùng xem lại ví dụ từ phần trước nơi bạn in tên và số nhận dạng của bang hội của bot

$ pip install -U python-dotenv
7

Bạn có thể làm sạch mã này bằng cách sử dụng một số chức năng tiện ích có sẵn trong

$ pip install -U python-dotenv
8

$ pip install -U discord.py
04 là một tiện ích có thể cải thiện tính đơn giản và dễ đọc của mã này bằng cách thay thế vòng lặp
$ pip install -U discord.py
05 bằng một hàm trừu tượng, trực quan

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
1

$ pip install -U discord.py
06 nhận một hàm, được gọi là vị từ, xác định một số đặc điểm của phần tử trong iterable mà bạn đang tìm kiếm. Ở đây, bạn đã sử dụng một loại hàm ẩn danh cụ thể, được gọi là lambda, làm vị ngữ

Trong trường hợp này, bạn đang cố gắng tìm bang hội có cùng tên với tên mà bạn đã lưu trữ trong biến môi trường

$ pip install -U discord.py
07. Khi
$ pip install -U discord.py
06 định vị một phần tử trong iterable thỏa mãn vị ngữ, nó sẽ trả về phần tử. Về cơ bản, điều này tương đương với câu lệnh
$ pip install -U discord.py
09 trong ví dụ trước, nhưng rõ ràng hơn

$ pip install -U python-dotenv
8 thậm chí đã trừu tượng hóa khái niệm này thêm một bước với tiện ích
$ pip install -U discord.py
51

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
2

$ pip install -U discord.py
51 lấy iterable và một số đối số từ khóa. Các đối số từ khóa đại diện cho các thuộc tính của các phần tử trong iterable mà tất cả phải được thỏa mãn để
$ pip install -U discord.py
51 trả về phần tử

Trong ví dụ này, bạn đã xác định

$ pip install -U discord.py
54 là thuộc tính phải được đáp ứng

Chi tiết kỹ thuật. Dưới vỏ bọc,

$ pip install -U discord.py
51 thực sự sử dụng các đối số từ khóa
$ pip install -U discord.py
56 để xây dựng một vị ngữ, sau đó nó sử dụng để gọi
$ pip install -U discord.py
06

Bây giờ bạn đã học được những kiến ​​thức cơ bản về tương tác với API, bạn sẽ tìm hiểu sâu hơn một chút về chức năng mà bạn đang sử dụng để truy cập chúng.

$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
8

Phản hồi sự kiện

Bạn đã biết rằng

$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
8 là một sự kiện. Trên thực tế, bạn có thể nhận thấy rằng nó được xác định như vậy trong mã bởi trình trang trí
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
00

Nhưng một sự kiện là gì?

Sự kiện là điều gì đó xảy ra trên Discord mà bạn có thể sử dụng để kích hoạt phản ứng trong mã của mình. Mã của bạn sẽ lắng nghe và sau đó phản hồi các sự kiện

Sử dụng ví dụ bạn đã thấy, trình xử lý sự kiện

$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
8 xử lý sự kiện mà
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4 đã tạo kết nối với Discord và chuẩn bị dữ liệu phản hồi của nó

Vì vậy, khi Discord kích hoạt một sự kiện,

$ pip install -U python-dotenv
8 sẽ định tuyến dữ liệu sự kiện tới trình xử lý sự kiện tương ứng trên
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4 được kết nối của bạn

Có hai cách trong

$ pip install -U python-dotenv
8 để triển khai trình xử lý sự kiện

  1. Sử dụng trình trang trí
    # bot.py
    import os
    
    import discord
    from dotenv import load_dotenv
    
    load_dotenv[]
    TOKEN = os.getenv['DISCORD_TOKEN']
    
    client = discord.Client[]
    
    @client.event
    async def on_ready[]:
        print[f'{client.user} has connected to Discord!']
    
    client.run[TOKEN]
    
    00
  2. Tạo một lớp con của
    $ python bot.py
    RealPythonTutorialBot#9643 has connected to Discord!
    
    4 và ghi đè các phương thức xử lý của nó

Bạn đã thấy việc triển khai bằng cách sử dụng trình trang trí. Tiếp theo, hãy xem cách phân lớp

$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
3

Tại đây, giống như trước đây, bạn đã tạo biến

$ pip install -U python-dotenv
61 và gọi là
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
10 bằng mã thông báo Discord của mình. Tuy nhiên,
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4 thực tế thì khác. Thay vì sử dụng lớp cơ sở thông thường,
$ pip install -U python-dotenv
61 là một thể hiện của
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
13, có hàm
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
8 bị ghi đè

Không có sự khác biệt giữa hai phong cách triển khai sự kiện, nhưng hướng dẫn này sẽ chủ yếu sử dụng phiên bản trang trí vì nó giống với cách bạn triển khai các lệnh

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
15, đây là chủ đề bạn sẽ đề cập một chút

Chi tiết kỹ thuật. Bất kể bạn triển khai trình xử lý sự kiện của mình như thế nào, có một điều phải nhất quán. tất cả các trình xử lý sự kiện trong

$ pip install -U python-dotenv
8 phải là coroutines

Bây giờ bạn đã học cách tạo trình xử lý sự kiện, hãy xem qua một số ví dụ khác nhau về trình xử lý mà bạn có thể tạo

Loại bỏ các quảng cáo

Chào mừng thành viên mới

Trước đây, bạn đã xem ví dụ về phản hồi sự kiện thành viên gia nhập bang hội. Trong ví dụ đó, người dùng bot của bạn có thể gửi cho họ một tin nhắn, chào mừng họ đến với cộng đồng Discord của bạn

Bây giờ, bạn sẽ triển khai hành vi đó trong

$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4 của mình, sử dụng trình xử lý sự kiện và xác minh hành vi đó trong Discord

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
4

Giống như trước đây, bạn đã xử lý sự kiện

$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
8 bằng cách in tên người dùng bot trong một chuỗi được định dạng. Tuy nhiên, điểm mới là việc triển khai trình xử lý sự kiện
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
19

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
19, như tên gọi của nó, xử lý sự kiện thành viên mới gia nhập bang hội

Trong ví dụ này, bạn đã sử dụng

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
21 để tạo kênh tin nhắn trực tiếp. Sau đó, bạn đã sử dụng kênh đó để gửi 922 tin nhắn trực tiếp tới thành viên mới đó

Chi tiết kỹ thuật. Lưu ý từ khóa

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
23 trước
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
21 và
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
25

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
23 tạm dừng việc thực hiện quy trình đăng ký xung quanh cho đến khi việc thực hiện từng quy trình đăng ký kết thúc

Bây giờ, hãy kiểm tra hành vi mới của bot của bạn

Trước tiên, hãy chạy phiên bản mới của

$ pip install -U python-dotenv
66 và đợi sự kiện
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
8 kích hoạt, ghi nhật ký tin nhắn của bạn tới
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
29

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
5

Bây giờ, hãy truy cập Discord, đăng nhập và điều hướng đến bang hội của bạn bằng cách chọn nó từ phía bên trái màn hình

Chọn Mời mọi người ngay bên cạnh danh sách bang hội nơi bạn đã chọn bang hội của mình. Chọn hộp có nội dung Đặt liên kết này thành không bao giờ hết hạn và sao chép liên kết

Bây giờ, với liên kết mời được sao chép, hãy tạo một tài khoản mới và tham gia bang hội bằng liên kết mời của bạn

Đầu tiên, bạn sẽ thấy rằng Discord đã mặc định giới thiệu bạn với bang hội bằng một tin nhắn tự động. Tuy nhiên, quan trọng hơn, hãy chú ý huy hiệu ở phía bên trái màn hình thông báo cho bạn về một tin nhắn mới

Khi bạn chọn nó, bạn sẽ thấy một tin nhắn riêng tư từ người dùng bot của mình

Hoàn hảo. Người dùng bot của bạn hiện đang tương tác với những người dùng khác bằng mã tối thiểu

Tiếp theo, bạn sẽ tìm hiểu cách trả lời các tin nhắn cụ thể của người dùng trong cuộc trò chuyện

Loại bỏ các quảng cáo

Trả lời tin nhắn

Hãy thêm vào chức năng trước đó của bot của bạn bằng cách xử lý sự kiện

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
30

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
30 xảy ra khi một tin nhắn được đăng trong kênh mà bot của bạn có quyền truy cập. Trong ví dụ này, bạn sẽ trả lời tin nhắn
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
32 bằng một câu nói ngắn gọn từ chương trình truyền hình Brooklyn Nine-Nine

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
6

Phần lớn trình xử lý sự kiện này xem xét

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
33, kiểm tra xem nó có bằng với
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
32 hay không và phản hồi bằng cách gửi một trích dẫn ngẫu nhiên đến kênh của thư nếu nó bằng

Phần còn lại là một phần quan trọng

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
7

Bởi vì một

$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4 không thể phân biệt được sự khác biệt giữa người dùng bot và tài khoản người dùng thông thường, trình xử lý
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
30 của bạn sẽ bảo vệ khỏi trường hợp đệ quy có khả năng xảy ra khi bot gửi một thông báo mà chính nó có thể xử lý

Để minh họa, giả sử bạn muốn bot của mình lắng nghe người dùng nói với nhau

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
37. Bạn có thể triển khai trình xử lý
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
30 của mình như thế này

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
8

Ngoài bản chất có khả năng spam của trình xử lý sự kiện này, nó còn có tác dụng phụ tàn khốc. Tin nhắn mà bot phản hồi chứa cùng một tin nhắn mà bot sẽ xử lý

Vì vậy, nếu một người trong kênh nói “Chúc mừng sinh nhật” một người khác, thì bot cũng sẽ kêu… lần nữa… và lần nữa… và lần nữa

Đó là lý do tại sao điều quan trọng là phải so sánh

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
39 với
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
40 [người dùng bot của bạn] và bỏ qua bất kỳ thông báo nào của chính nó

Vì vậy, hãy sửa chữa

$ pip install -U python-dotenv
66

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
9

Đừng quên

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
42 ở đầu mô-đun, vì trình xử lý
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
30 sử dụng
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
44

Chạy chương trình

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
5

Cuối cùng, hãy đến Discord để kiểm tra nó

Tuyệt quá. Bây giờ bạn đã thấy một vài cách khác nhau để xử lý một số sự kiện Discord phổ biến, bạn sẽ tìm hiểu cách xử lý các lỗi mà trình xử lý sự kiện có thể gây ra

Loại bỏ các quảng cáo

Xử lý ngoại lệ

Như bạn đã thấy,

$ pip install -U python-dotenv
8 là một hệ thống hướng sự kiện. Sự tập trung vào các sự kiện này kéo dài đến cả các trường hợp ngoại lệ. Khi một trình xử lý sự kiện tăng
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
46, Discord sẽ gọi
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
47

Hành vi mặc định của

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
47 là viết thông báo lỗi và theo dõi ngăn xếp cho
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
49. Để kiểm tra điều này, hãy thêm một trình xử lý tin nhắn đặc biệt vào
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
30

$ pip install -U python-dotenv
21

Trình xử lý tin nhắn

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
51 mới cho phép bạn gửi một
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
52 theo lệnh

Chạy chương trình và gõ

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
51 vào kênh Discord

Bây giờ bạn sẽ thấy

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
46 đã được trình xử lý
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
30 của bạn nâng lên trong bảng điều khiển

$ pip install -U python-dotenv
22

Ngoại lệ đã bị bắt bởi trình xử lý lỗi mặc định, vì vậy đầu ra chứa thông báo

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
56. Hãy khắc phục điều đó bằng cách xử lý lỗi cụ thể đó. Để làm như vậy, thay vào đó, bạn sẽ bắt
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
52 và ghi nó vào một tệp

Trình xử lý sự kiện

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
47 lấy
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
59 làm đối số đầu tiên. Trong trường hợp này, chúng tôi hy vọng
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
59 sẽ là
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
61. Nó cũng chấp nhận
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
62 và
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
63 dưới dạng các đối số từ khóa, vị trí và linh hoạt được chuyển đến trình xử lý sự kiện ban đầu

Vì vậy, vì

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
30 nhận một đối số duy nhất,
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
65, nên chúng tôi hy vọng
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
66 sẽ là
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
65 mà người dùng đã gửi trong kênh Discord

$ pip install -U python-dotenv
23

Nếu

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
46 bắt nguồn từ trình xử lý sự kiện
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
30, bạn
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
70 một chuỗi được định dạng vào tệp
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
71. Nếu một sự kiện khác gây ra một
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
46, thì chúng tôi chỉ muốn trình xử lý của chúng tôi đưa ra lại ngoại lệ để gọi hành vi mặc định

Chạy

$ pip install -U python-dotenv
66 và gửi lại tin nhắn
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
51 để xem đầu ra trong
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
71

$ pip install -U python-dotenv
24

Thay vì chỉ có dấu vết ngăn xếp, bạn có một lỗi nhiều thông tin hơn, hiển thị

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
65 đã khiến
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
30 tăng
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
52, được lưu vào một tệp để tồn tại lâu hơn

Chi tiết kỹ thuật. Nếu bạn muốn tính đến

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
46 thực tế khi bạn viết thông báo lỗi của mình cho ________ 971, thì bạn có thể sử dụng các hàm từ ________ 981, chẳng hạn như
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
82

Giờ đây, bạn đã có một số kinh nghiệm xử lý các sự kiện khác nhau và tương tác với API Discord, bạn sẽ tìm hiểu về một lớp con của

$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4 có tên là
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
15, lớp này triển khai một số chức năng tiện dụng, dành riêng cho bot

Kết nối Bot

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
15 là một lớp con của
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4 có thêm một số chức năng bổ sung hữu ích khi bạn tạo người dùng bot. Ví dụ: một
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
15 có thể xử lý các sự kiện và lệnh, gọi kiểm tra xác thực, v.v.

Trước khi bạn tìm hiểu các tính năng dành riêng cho

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
15, hãy chuyển đổi
$ pip install -U python-dotenv
66 để sử dụng
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
15 thay vì
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4

$ pip install -U python-dotenv
25

Như bạn có thể thấy,

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
15 có thể xử lý các sự kiện giống như cách mà
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4 thực hiện. Tuy nhiên, hãy lưu ý sự khác biệt giữa
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4 và
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
15

  1. # bot.py
    import os
    
    import discord
    from dotenv import load_dotenv
    
    load_dotenv[]
    TOKEN = os.getenv['DISCORD_TOKEN']
    
    client = discord.Client[]
    
    @client.event
    async def on_ready[]:
        print[f'{client.user} has connected to Discord!']
    
    client.run[TOKEN]
    
    15 được nhập từ mô-đun
    # bot.py
    import os
    
    import discord
    from dotenv import load_dotenv
    
    load_dotenv[]
    TOKEN = os.getenv['DISCORD_TOKEN']
    
    client = discord.Client[]
    
    @client.event
    async def on_ready[]:
        print[f'{client.user} has connected to Discord!']
    
    client.run[TOKEN]
    
    97
  2. Trình khởi tạo
    # bot.py
    import os
    
    import discord
    from dotenv import load_dotenv
    
    load_dotenv[]
    TOKEN = os.getenv['DISCORD_TOKEN']
    
    client = discord.Client[]
    
    @client.event
    async def on_ready[]:
        print[f'{client.user} has connected to Discord!']
    
    client.run[TOKEN]
    
    15 yêu cầu một
    # bot.py
    import os
    
    import discord
    from dotenv import load_dotenv
    
    load_dotenv[]
    TOKEN = os.getenv['DISCORD_TOKEN']
    
    client = discord.Client[]
    
    @client.event
    async def on_ready[]:
        print[f'{client.user} has connected to Discord!']
    
    client.run[TOKEN]
    
    99, bạn sẽ tìm hiểu thêm về điều này trong phần tiếp theo

Thư viện tiện ích mở rộng,

$ pip install -U python-dotenv
200, cung cấp một số thành phần thú vị để giúp bạn tạo Discord
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
15. Một thành phần như vậy là
$ pip install -U python-dotenv
202

Loại bỏ các quảng cáo

Sử dụng các lệnh
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
15

Nói chung, lệnh là mệnh lệnh mà người dùng đưa ra cho bot để nó thực hiện điều gì đó. Các lệnh khác với các sự kiện bởi vì chúng

  • tùy ý xác định
  • Được gọi trực tiếp bởi người dùng
  • Linh hoạt, về giao diện của họ

Về mặt kỹ thuật, một

$ pip install -U python-dotenv
202 là một đối tượng bao hàm một chức năng được gọi bằng một lệnh văn bản trong Discord. Lệnh văn bản phải bắt đầu bằng
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
99, được xác định bởi đối tượng
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
15

Chúng ta hãy xem một sự kiện cũ để hiểu rõ hơn điều này trông như thế nào

$ pip install -U python-dotenv
26

Tại đây, bạn đã tạo một trình xử lý sự kiện

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
30, nhận chuỗi
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
65 và so sánh nó với một tùy chọn được xác định trước.
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
32

Sử dụng

$ pip install -U python-dotenv
202, bạn có thể chuyển đổi ví dụ này thành cụ thể hơn

$ pip install -U python-dotenv
27

Có một số đặc điểm quan trọng cần hiểu về việc sử dụng

$ pip install -U python-dotenv
202

  1. Thay vì sử dụng

    $ pip install -U python-dotenv
    
    212 như trước đây, bạn sử dụng
    $ pip install -U python-dotenv
    
    213, chuyển lệnh gọi [
    $ pip install -U python-dotenv
    
    214] làm đối số của nó

  2. Chức năng bây giờ sẽ chỉ được gọi khi

    $ pip install -U python-dotenv
    
    215 được đề cập trong cuộc trò chuyện. Điều này khác với sự kiện
    # bot.py
    import os
    
    import discord
    from dotenv import load_dotenv
    
    load_dotenv[]
    TOKEN = os.getenv['DISCORD_TOKEN']
    
    client = discord.Client[]
    
    @client.event
    async def on_ready[]:
        print[f'{client.user} has connected to Discord!']
    
    client.run[TOKEN]
    
    30, được thực hiện bất cứ khi nào người dùng gửi tin nhắn, bất kể nội dung là gì

  3. Lệnh phải có tiền tố là dấu chấm than [

    $ pip install -U python-dotenv
    
    217] vì đó là
    # bot.py
    import os
    
    import discord
    from dotenv import load_dotenv
    
    load_dotenv[]
    TOKEN = os.getenv['DISCORD_TOKEN']
    
    client = discord.Client[]
    
    @client.event
    async def on_ready[]:
        print[f'{client.user} has connected to Discord!']
    
    client.run[TOKEN]
    
    99 mà bạn đã xác định trong trình khởi tạo cho
    # bot.py
    import os
    
    import discord
    from dotenv import load_dotenv
    
    load_dotenv[]
    TOKEN = os.getenv['DISCORD_TOKEN']
    
    client = discord.Client[]
    
    @client.event
    async def on_ready[]:
        print[f'{client.user} has connected to Discord!']
    
    client.run[TOKEN]
    
    15 của mình

  4. Bất kỳ hàm

    $ pip install -U python-dotenv
    
    202 nào [về mặt kỹ thuật được gọi là
    $ pip install -U python-dotenv
    
    221] phải chấp nhận ít nhất một tham số, được gọi là
    $ pip install -U python-dotenv
    
    222, là
    $ pip install -U python-dotenv
    
    223 bao quanh
    $ pip install -U python-dotenv
    
    202 được gọi

Một

$ pip install -U python-dotenv
223 chứa dữ liệu như kênh và bang hội mà người dùng gọi là
$ pip install -U python-dotenv
202 từ

Chạy chương trình

$ pip install -U python-dotenv
28

Khi bot của bạn đang chạy, giờ đây bạn có thể truy cập Discord để thử lệnh mới của mình

Theo quan điểm của người dùng, sự khác biệt thực tế là tiền tố giúp chính thức hóa lệnh, thay vì chỉ phản ứng với một sự kiện

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
30 cụ thể

Điều này cũng đi kèm với những lợi ích tuyệt vời khác. Ví dụ: bạn có thể gọi lệnh

$ pip install -U python-dotenv
228 để xem tất cả các lệnh mà
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
15 của bạn xử lý

Nếu bạn muốn thêm mô tả vào lệnh của mình để thông báo

$ pip install -U python-dotenv
230 có nhiều thông tin hơn, chỉ cần chuyển mô tả
$ pip install -U python-dotenv
230 cho trình trang trí
$ pip install -U python-dotenv
232

$ pip install -U python-dotenv
29

Bây giờ, khi người dùng gọi lệnh

$ pip install -U python-dotenv
228, bot của bạn sẽ hiển thị mô tả về lệnh của bạn

Hãy nhớ rằng tất cả chức năng này chỉ tồn tại cho lớp con

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
15, không phải lớp cha
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
4

$ pip install -U python-dotenv
202 có một chức năng hữu ích khác. khả năng sử dụng
$ pip install -U python-dotenv
237 để thay đổi các loại đối số của nó

Tự động chuyển đổi tham số

Một lợi ích khác của việc sử dụng các lệnh là khả năng chuyển đổi các tham số

Đôi khi, bạn yêu cầu một tham số phải là một loại nhất định, nhưng các đối số của hàm

$ pip install -U python-dotenv
202 theo mặc định là các chuỗi. Một
$ pip install -U python-dotenv
237 cho phép bạn chuyển đổi các tham số đó thành loại mà bạn mong đợi

Ví dụ: nếu bạn muốn tạo một

$ pip install -U python-dotenv
202 để người dùng bot của mình mô phỏng việc tung một số viên xúc xắc [biết những gì bạn đã học cho đến nay], bạn có thể định nghĩa nó như sau

$ pip install -U python-dotenv
0

Bạn đã xác định

$ pip install -U python-dotenv
241 để lấy hai tham số

  1. Số lượng xúc xắc để lăn
  2. Số mặt trên mỗi khuôn

Sau đó, bạn trang trí nó bằng

$ pip install -U python-dotenv
232 để bạn có thể gọi nó bằng lệnh
$ pip install -U python-dotenv
243. Cuối cùng, bạn
# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
22 kết quả trong một tin nhắn gửi lại cho
$ pip install -U python-dotenv
245

Trong khi điều này có vẻ đúng, nó không phải là. Thật không may, nếu bạn chạy

$ pip install -U python-dotenv
66 và gọi lệnh
$ pip install -U python-dotenv
243 trong kênh Discord của mình, bạn sẽ thấy lỗi sau

$ pip install -U python-dotenv
1

Nói cách khác,

$ pip install -U python-dotenv
248 không thể chấp nhận
$ pip install -U python-dotenv
249 làm đối số. Thay vào đó, nó phải là một
$ pip install -U python-dotenv
250. Mặc dù bạn có thể chuyển từng giá trị thành một
$ pip install -U python-dotenv
250, nhưng có một cách tốt hơn. bạn có thể sử dụng một
$ pip install -U python-dotenv
237

Trong

$ pip install -U python-dotenv
8, một
$ pip install -U python-dotenv
237 được định nghĩa bằng cách sử dụng các chú thích hàm của Python 3

$ pip install -U python-dotenv
2

Bạn đã thêm chú thích

$ pip install -U python-dotenv
255 vào hai tham số mà bạn muốn thuộc loại
$ pip install -U python-dotenv
250. Thử lại lệnh

Với sự thay đổi nhỏ đó, lệnh của bạn hoạt động. Sự khác biệt là bạn hiện đang chuyển đổi các đối số lệnh thành

$ pip install -U python-dotenv
250, điều này làm cho chúng tương thích với logic của hàm của bạn

Ghi chú. Một

$ pip install -U python-dotenv
237 có thể là bất kỳ loại dữ liệu nào có thể gọi được, không chỉ đơn thuần là các loại dữ liệu. Đối số sẽ được chuyển đến phần có thể gọi được và giá trị trả về sẽ được chuyển vào
$ pip install -U python-dotenv
202

Tiếp theo, bạn sẽ tìm hiểu về đối tượng

$ pip install -U python-dotenv
260 và cách đối tượng này có thể cải thiện các lệnh của bạn

Kiểm tra vị từ lệnh

Một

$ pip install -U python-dotenv
260 là một biến vị ngữ được đánh giá trước khi một
$ pip install -U python-dotenv
202 được thực thi để đảm bảo rằng
$ pip install -U python-dotenv
223 xung quanh lệnh gọi
$ pip install -U python-dotenv
202 là hợp lệ

Trong một ví dụ trước đó, bạn đã làm điều gì đó tương tự để xác minh rằng người dùng đã gửi tin nhắn mà bot xử lý không phải là người dùng bot.

# bot.py
import os

import discord
from dotenv import load_dotenv

load_dotenv[]
TOKEN = os.getenv['DISCORD_TOKEN']

client = discord.Client[]

@client.event
async def on_ready[]:
    print[f'{client.user} has connected to Discord!']

client.run[TOKEN]
7

Tiện ích mở rộng

$ pip install -U python-dotenv
265 cung cấp một cơ chế sạch hơn và dễ sử dụng hơn để thực hiện loại kiểm tra này, cụ thể là sử dụng các đối tượng
$ pip install -U python-dotenv
260

Để minh họa cách thức hoạt động của tính năng này, giả sử bạn muốn hỗ trợ lệnh

$ pip install -U python-dotenv
267 để tạo một kênh mới. Tuy nhiên, bạn chỉ muốn cho phép quản trị viên khả năng tạo kênh mới bằng lệnh này

Trước tiên, bạn sẽ cần tạo vai trò thành viên mới trong quản trị viên. Đi vào bang hội Discord và chọn menu {Tên máy chủ} → Cài đặt máy chủ

Sau đó, chọn Vai trò từ danh sách điều hướng bên trái

Cuối cùng chọn dấu + bên cạnh ROLES và nhập tên

$ pip install -U python-dotenv
268 và chọn Save Changes

Bây giờ, bạn đã tạo một vai trò

$ pip install -U python-dotenv
268 mà bạn có thể chỉ định cho những người dùng cụ thể. Tiếp theo, bạn sẽ cập nhật
$ pip install -U python-dotenv
66 thành
$ pip install -U python-dotenv
260 vai trò của người dùng trước khi cho phép họ bắt đầu lệnh

$ pip install -U python-dotenv
4

Trong

$ pip install -U python-dotenv
66, bạn có một hàm
$ pip install -U python-dotenv
202 mới, được gọi là
$ pip install -U python-dotenv
274, hàm này nhận một
$ pip install -U python-dotenv
275 tùy chọn và tạo kênh đó.
$ pip install -U python-dotenv
274 cũng được trang trí bằng một
$ pip install -U python-dotenv
260 gọi là
$ pip install -U python-dotenv
278

Bạn cũng sử dụng

$ pip install -U python-dotenv
279 để đảm bảo rằng bạn không tạo kênh trùng tên với kênh hiện có

Nếu bạn chạy chương trình này như hiện tại và nhập

$ pip install -U python-dotenv
280 vào kênh Discord của mình, thì bạn sẽ thấy thông báo lỗi sau

$ pip install -U python-dotenv
5

$ pip install -U python-dotenv
281 này nói rằng
$ pip install -U python-dotenv
282 đã thất bại. Thật không may, lỗi này chỉ in tới
$ python bot.py
RealPythonTutorialBot#9643 has connected to Discord!
29. Sẽ tốt hơn nếu báo cáo điều này cho người dùng trong kênh. Để làm như vậy, hãy thêm sự kiện sau

$ pip install -U python-dotenv
6

Sự kiện này xử lý một sự kiện lỗi từ lệnh và gửi một thông báo lỗi đầy đủ thông tin trở lại

$ pip install -U python-dotenv
223 ban đầu của
$ pip install -U python-dotenv
202 được gọi

Hãy thử lại tất cả và bạn sẽ thấy lỗi trong kênh Discord

Tuyệt quá. Bây giờ, để giải quyết vấn đề, bạn cần tự cấp cho mình vai trò quản trị viên

Với vai trò quản trị viên, người dùng của bạn sẽ vượt qua

$ pip install -U python-dotenv
260 và có thể tạo kênh bằng lệnh

Ghi chú. Hãy nhớ rằng để gán vai trò, người dùng của bạn sẽ phải có quyền chính xác. Cách dễ nhất để đảm bảo điều này là đăng nhập bằng người dùng mà bạn đã tạo bang hội.

Khi bạn gõ lại

$ pip install -U python-dotenv
280, bạn sẽ tạo thành công kênh real-python

Ngoài ra, lưu ý rằng bạn có thể chuyển đối số

$ pip install -U python-dotenv
275 tùy chọn để đặt tên kênh theo bất cứ điều gì bạn muốn

Với ví dụ cuối cùng này, bạn đã kết hợp một

$ pip install -U python-dotenv
202, một sự kiện, một
$ pip install -U python-dotenv
260 và thậm chí cả tiện ích
$ pip install -U discord.py
51 để tạo một bot Discord hữu ích

Sự kết luận

Xin chúc mừng. Bây giờ, bạn đã học cách tạo bot Discord bằng Python. Bạn có thể tạo bot để tương tác với người dùng trong bang hội do bạn tạo hoặc thậm chí là bot mà người dùng khác có thể mời để tương tác với cộng đồng của họ. Các bot của bạn sẽ có thể phản hồi các tin nhắn và lệnh cũng như nhiều sự kiện khác

Trong hướng dẫn này, bạn đã học những kiến ​​thức cơ bản về cách tạo bot Discord của riêng mình. Bây giờ bạn biết

  • Bất hòa là gì
  • Tại sao
    $ pip install -U python-dotenv
    
    8 rất có giá trị
  • Cách tạo bot Discord trong Cổng thông tin dành cho nhà phát triển
  • Cách tạo kết nối Discord trong Python
  • Cách xử lý các sự kiện
  • Cách tạo kết nối
    # bot.py
    import os
    
    import discord
    from dotenv import load_dotenv
    
    load_dotenv[]
    TOKEN = os.getenv['DISCORD_TOKEN']
    
    client = discord.Client[]
    
    @client.event
    async def on_ready[]:
        print[f'{client.user} has connected to Discord!']
    
    client.run[TOKEN]
    
    15
  • Cách sử dụng lệnh bot, kiểm tra và chuyển đổi

Để đọc thêm về thư viện

$ pip install -U python-dotenv
8 mạnh mẽ và đưa bot của bạn lên một tầm cao mới, hãy đọc qua tài liệu phong phú của họ. Ngoài ra, giờ đây bạn đã quen thuộc với API Discord nói chung, bạn có nền tảng tốt hơn để xây dựng các loại ứng dụng Discord khác

Bạn cũng có thể khám phá các khả năng của ChatterBot, Tweepy, InstaPy và Alexa Skills để tìm hiểu thêm về cách bạn có thể tạo bot cho các nền tảng khác nhau bằng Python

Đánh dấu là đã hoàn thành

Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Tạo Bot Discord bằng Python

🐍 Thủ thuật Python 💌

Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python

Gửi cho tôi thủ thuật Python »

Giới thiệu về Alex Ronquillo

Alex Ronquillo là Kỹ sư phần mềm tại thelab. Anh ấy là một Pythonista cuồng nhiệt, cũng đam mê viết lách và phát triển trò chơi

» Thông tin thêm về Alex

Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là

Aldren

Jon

Joanna

Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonista chuyên gia

Nâng cao kỹ năng Python của bạn »

Bậc thầy Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bạn nghĩ sao?

Đánh giá bài viết này

Tweet Chia sẻ Chia sẻ Email

Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?

Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi

Chủ Đề