创建和管理 Discord 机器人

0 股票
0
0
0
0

介绍

本教程讲解如何在 Linux 服务器上运行 Discord 机器人。Discord 机器人是学习 Web 和后端开发基础知识的绝佳方式,同时还能与朋友们一起享受乐趣。随着 Discord 近期面向公众开放,学习如何构建和运行 Discord 机器人也可以成为一项有趣的副业。构建 Discord 机器人并不难,但需要遵循一系列特定的步骤,以确保机器人的安全性和正常运行。.

由于 Discord 机器人运行代码并能与 Discord 服务器进行非常复杂的交互,因此需要托管在服务器上。虽然您可以付费使用服务将 Discord 机器人托管在互联网上,但学习完本文的教程后,您会发现自行托管 Discord 机器人要容易得多。.

本教程使用 Python 和 discord.py 库。Discord 机器人主要用 Python(discord.py 库)或 JavaScript(discord.js 库)编写,这两种语言都拥有强大的生态系统,可以与所有其他用该语言编写的库兼容。因此,除了语言特有的步骤外,大部分步骤都相同。但是,Python 库更容易上手,这也是本教程选择它的原因。.

本库中的 Discord 机器人示例是一个简单的拼写纠正机器人,它将向您展示 discord.py 库中一些最重要的命令。.

先决条件

  • VPS 或虚拟专用服务器

如果你的用户不多,或者你的机器人执行的任务很简单,那么几乎没有任何硬件要求,你只需要会运行 Python 即可。.

  • 任何 64 位 Linux 操作系统(x86-64 或 Arm64)

本教程假设您运行的是 Ubuntu 系统,但稍作修改后,同样的步骤也适用于其他 Linux 发行版和 Windows 系统。.

  • 拥有一个 Discord 账号,并且该账号所属的 Discord 服务器拥有管理员权限。.
具备 Python 基础或中级知识

步骤 1 – 设置虚拟环境

在开始之前,建议使用名为 virtualenv 的 Python 虚拟环境。它允许每个项目拥有专属的库版本,从而避免因项目间对库版本要求不同而导致的兼容性问题。对于运行在 Python 上的 Discord 机器人来说,强烈建议使用 virtualenv,因为它可以确保机器人始终正常运行,并且可以轻松地将其迁移到其他服务器。.

在 Linux 系统上打开终端,或者通过 SSH(安全外壳)连接到服务器,然后运行以下命令:

apt update && apt install python3.10-venv mkdir discord-bot && cd discord-bot/ python3 -m venv discord-bot-env source discord-bot-env/bin/activate

这将安装创建虚拟环境所需的 Python 包,为 Discord 机器人创建一个目录,并激活 Python 虚拟环境。您的终端现在应该如下所示: (discord-bot-env)  在您的用户名显示之前,请安装 discord.py 库。.

python3 -m pip install --upgrade discord.py

步骤 2 – 在 Discord 上注册你的机器人

在运行任何脚本之前,您需要先在 Discord 官方注册您的 Discord 机器人,并获取一个用于向 Discord 进行身份验证的令牌。这是一个简单但耗时的过程。请按照以下步骤操作:

1. 打开网页浏览器。.

2.登录Discord网站。.

3_进入Discord开发者门户。.

4.点击新建应用程序。.

5. 在«创建应用程序»部分,给你的机器人命名。.

6.点击机器人,进入机器人部分。.

7_确保选中“公共机器人”,并且未选中“需要 OAuth2 代码授权”。.

8. 点击“重置令牌”并记下您的令牌。请务必妥善保管此令牌。如果丢失,您需要再次点击该按钮,重新获取一个新令牌,并将代码中的令牌更新为新令牌。.

9.向下滚动并阅读整个章节«特权网关意图» 开启此功能后,机器人即可运行。由于您的机器人目前还没有任何代码,因此超过 100 台服务器的限制条件不适用。.

10. 前往 OAuth2 部分,然后进入 URL 生成器子部分。该 URL 允许您以及任何想要使用您的机器人的人轻松地将您的机器人添加到您的服务器,并仅授予他们希望机器人拥有的权限和功能。.

11_在“范围”部分,点击“机器人”。.

12_在«机器人权限»,点击你想授予机器人的所有权限。这取决于你希望机器人能够执行哪些操作。对于本示例中的简单机器人,以下权限应该足够了。.

13. 在«生成的网址»部分,单击«复制»。.

14. 将此网址输入搜索栏并访问该链接。.

15. 阅读有关机器人功能的详细信息,并将其添加到服务器。您只能将机器人添加到您拥有管理员权限的服务器。.

16_Roy“继续”点击”

17. 选择您希望机器人添加到的服务器所需的权限。尽量在保证机器人功能完备的前提下,授予其最少的权限。如果有人获取了您的机器人令牌,授予其过多的权限可能会带来安全风险。.

步骤 3 - 编写你的机器人代码

现在机器人已经注册到 Discord 了,接下来你需要编写它的代码。幸运的是,创建一个简单的 Discord 机器人很容易,而 discord.py 文件非常适合这项工作。.

在运行«步骤 1»中命令的同一文件夹中,有一个名为“ discord_bot_script.py 使用您最喜欢的文本编辑器进行创建。在本例中,我将使用 nano 编辑器。.

nano discord_bot_script.py

复制并粘贴以下代码,并将最后一行中的 token 替换为您自己的 token:

import discord


intents = discord.Intents.default()
intents.message_content = True


client = discord.Client(intents=intents)


words = [["youre", "you're"], ["im", "i'm"], ["Im", "I'm"], ["hes", "he's"], ["shes", "she's"]]


@client.event
async def on_ready():
    print("Bot successfully logged in as " + client.user)




@client.event
async def on_message(message):
    if message.author == client.user:
        return
    for word in words:
        if word[0] in message.content:
            await message.channel.send(str(message.author) + ", you misspelled " + word[1] + " as " + word[0], reference=message)


client.run('<YOUR-TOKEN-HERE>')

我不会逐行讲解,但这个简单的机器人演示了用 Python 构建 Discord 机器人所需的大部分知识。它首先声明意图(intent),意图本质上是机器人用来判断其记录和响应的事件的过滤器。例如,如果你有一个拼写检查机器人,你只会响应消息事件,而忽略诸如用户加入服务器或玩特定游戏之类的事件。你可以在 discord.py 文档页面上阅读更多关于意图的信息。.

代码随后会返回一个待纠正单词的小列表。您可以编辑此列表,将任何单词替换为其他单词。.
然后,代码定义了两种特定类型的事件,它将对这些事件做出响应:
  • 就绪 即机器人脚本加载完毕,机器人连接到其服务器之时。.
  • 消息 当有人在机器人连接的任何服务器上发送新消息时,就会触发此事件。此事件还有一个参数,用于将消息内容和元数据传递给函数。.

对于该函数 就绪这段代码的作用是让机器人向终端发送一条消息。你可以在开发过程中使用 print 函数来记录事件。.

对于该函数 on_message首先,代码会检查消息的发送者是否为机器人,如果是,则函数返回。如果不进行此检查,机器人可能会意外陷入无限循环,永远回复自己的消息。然后,代码会检查接收到的消息中是否包含列表中的任何单词。如果包含,则使用 send 函数回复发送的消息。这是 discord.py 中最重要、最强大的函数之一,学会充分利用它的潜力将使您能够构建一些有趣且复杂的机器人。.

现在你已经编写好了机器人代码,保存代码并使用以下函数运行它:

python3 discord_bot_script.py
[全部的: 1   平均的: 5/5]
发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

您可能也喜欢