最近创立了一个大众号:编程进阶录,记载一些自己学习进程傍边的笔记和心得,欢迎咱们关注

快速上手Discord 机器人开发

闲来无事,在接单群里找了个单,因为自己往常没事的时分也会接接外包的单子,顺便赚点外快,干好发现群里有个开发 Discord 机器人的单子,二话不说,直接接了,接下来便是渐渐的去找各种文档学习怎么开发了。接下来是我的一些学习的记载,假如有错误的地方,欢迎各位大佬纠正。

可能有许多同学不知道 Discord 是个什么东西,在这儿我和咱们介绍一下,Discord 是一个国外的在线谈天室,就类似于国内的 YY语音、微信之类的谈天软件

开发前的预备

这儿开发之前,因为某些原因需求用到特殊的工具,这儿我就不进行介绍啦。

discord官网地址:discord.com/

因为往常接触到的编程言语比较多,经过我的挑选,最终挑选了运用 Python 来完成(这儿直接踩了好多坑)

装置开发所需求的依靠

在正式开发之前,咱们需求预备好自己的开发环境,Python 的话直接挑选最新的即可,这儿就不对 Python 的装置进行介绍啦,直接自行网上查找即可。

装置 pycord 依靠

在不断踩坑的进程傍边,我发现 pycord 这个库其实对 discord.py 进行了封装,更佳容易上手开发,并且文档也更佳的具体,所以直接无脑挑选 pycord 即可。

装置指令

pip install py-cord

装置成功之后,就能够进行机器人的开发了。

创立机器人

1、登录到 Dicord 的开发者渠道

网址:discord.com/developers/…

点击页面右上角的 New Application,输入你需求创立的机器人的名称,同意协议即可创立成功。

快速上手Discord 机器人开发

创立成功好了运用之后,挑选 Bot 选项卡,在运用程序傍边创立咱们自己的 bot

快速上手Discord 机器人开发

在下图所示的 Token 方位就可取得咱们创立好的机器人的 Token。

快速上手Discord 机器人开发

在 Bot 选项卡的页面傍边下拉能够给机器人挑选不同的权限来计算权限值(permissions integer)。

创立服务器

到这儿咱们的机器人现已创立成功了,接下来咱们将机器人添加到咱们的 Server 傍边去,这儿我直接挑选亲身创立

快速上手Discord 机器人开发

接下来回到刚刚的开发者渠道,找到 OAuth2 选项卡,挑选 URL Generator,这儿我直接给机器人管理员的权限,挑选如下所示:

快速上手Discord 机器人开发

点击 Copy 按钮,将生成的授权链接复制到浏览器傍边,就能够呈现授权界面,如下所示,挑选你自己创立的 server,点击持续即可:

快速上手Discord 机器人开发

到这儿为止,咱们现已预备好了 Discord Bot 开发的基本条件,接下来就能够开始给咱们的机器人开发有意思的功用了。

创立自己的榜首个 discord 机器人

这儿我直接给出代码,然后再解说每一行代码的意义吧

import discord
# 这儿 proxy 依据你自己的需求进行填写,也能够不必填
bot = discord.Bot(proxy="http://127.0.0.1:7890", intents=discord.Intents.all())
@bot.event
async def on_ready():
  print("机器人上线了")
@bot.slash_command(name = "hi", description = "Say hello to the bot")
async def hello(ctx):
    await ctx.respond("Hey!")
bot.run('token') # 这儿替换成你自己的 token

榜首行代码傍边,咱们导入了咱们之前自己装置的 discord 包,然后运用 discord 包傍边的 Bot 目标实例化出来一个 bot 目标。

然后运用 bot 傍边 event 装修器来监听指定的完成,这儿我运用的 on_ready 便是当机器人预备好了之后,就会触发呼应的函数,这儿我直接运用打印语句进行简略的打印。

随后便是运用 slash_command 装修器来界说一条指令,slash_command 便是当用在与机器人的谈天对话框傍边输入 / 时就会弹出指令供你来挑选,其中 name 代表着指令的名称,description 代表对指令的一些解说阐明,就如同下面的图片傍边的相同。

快速上手Discord 机器人开发

接下来便是伙伴们自己将自己需求完成的逻辑编写到函数傍边即可。这儿我简略的让机器人回复Hey

下面是实际效果的展现。

快速上手Discord 机器人开发

OK,到这儿能够说现已成功入门了 discord 机器人开发,你还能够组合各种库、数据库等等进行开发,原理其实和开发 Web 差不多,可是我认为他更佳风趣。

发送能够交互的音讯

往常在开发网页的时分,咱们能够经过各种按钮、输入框来和咱们的运用程序交互,在 discord bot 的开发傍边,相同的 discord 也提供了许多能够供开发者挑选运用的交互组件,下面我演示一下常用的交互组件的运用方式。

发送按钮

和往常的网页开发相同,咱们能够让咱们的机器人给用户发送按钮,供用户挑选操作,稍微修改一下咱们的代码,如下所示:

import discord
# 这儿 proxy 依据你自己的需求进行填写,也能够不必填
bot = discord.Bot(proxy="http://127.0.0.1:7890", intents=discord.Intents.all())
class TestView(discord.ui.View):
    def __init__(self):
        super().__init__()
    @discord.ui.button(label="点我")
    async def on_click(self, button: discord.ui.Button, interaction: discord.Interaction):
        await interaction.response.send_message("你点了我", ephemeral=True)
@bot.event
async def on_ready():
    print("机器人上线了")
@bot.slash_command(name="hi", description="Say hello to the bot")
async def hello(ctx):
    await ctx.respond("Hello!", view=TestView())
bot.run('token') # 这儿替换成你自己的 token

上面的代码傍边,咱们界说了一个 TestView 的类承继于 discord.ui.View, 然后进行初始化,并且运用 @discord.ui.button 创立了一个文字为 点我 的按钮,经过给该按钮注册了一个事情回调,一旦用户点击咱们的按钮时就会触发咱们界说的回调按钮,回调函数的参数固定为上面上个,假如你需求进行参数传递,运用运用类的初始化机制完成,在结构器傍边传入即可。

切换到 discord 到机器人谈天界面,运用 /hi 指令,能够发现机器人成功的给咱们发送了一句话和一个 点我 的按钮,点击按钮之后机器人给咱们呼应了 你点了我 的音讯。

快速上手Discord 机器人开发