/ping 斜杠命令的机器人:你注册一次命令,然后启动机器人在你的服务器中使用。如果这是你的第一个机器人,请按顺序复制每个代码块。
为你的机器人创建一个文件夹并用
bun init 进行设置。当它询问时选择默认选项。
terminal
将 Discord.js 添加到项目。
terminal
你的机器人需要自己的账户,你在 Discord 的开发者门户中创建。打开开发者门户,登录并创建一个应用。在其中,打开 Bot 标签页以创建机器人用户。如果遇到问题,Discord 的设置指南有截图帮助。 从门户复制两个值:
- Bot 标签页上的 token。这是你的代码用来登录的密码,所以请像对待密码一样保管好它,不要泄露。
- General Information 标签页上的 Application ID。Discord 用它来将你的命令与此应用关联。
一个机器人只有在被邀请后才能在你的服务器中做任何事。在门户的 OAuth2 部分,生成一个带有
bot 和 applications.commands 作用域的邀请 URL,打开它,并将机器人添加到你管理的服务器中。斜杠命令需要 applications.commands 作用域,所以不要跳过它。一个你创建的用于测试的个人服务器是最简单的开始方式,Discord 的添加机器人指南有截图指导。
你还需要你的服务器 ID 来注册命令。在 Discord 中,打开 设置 > 高级 > 开发者模式,然后右键点击你的服务器图标并选择 复制服务器 ID。
将所有三个值保存在
.env.local 中。Bun 在启动时读取此文件并将其加载到 process.env 中,因此任何秘密都不会出现在你的代码中。
.env.local
在提交任何内容之前,将
.env.local 添加到你的 .gitignore。任何读到 token 的人都可以控制你的机器人,所以它永远不应该进入版本控制。
.gitignore
Discord 必须知道一个命令之后,其他人才能使用它。使用一个名为
deploy-commands.ts 的简短脚本注册 /ping。
deploy-commands.ts
terminal
现在机器人本身。将其保存为
bot.ts。
bot.ts
interactionCreate 就会运行;它确认命令是 /ping 并回复 Pong!。
使用
bun run 启动机器人。
terminal
/ping。
Pong!。你已经有了一个可以工作的 Discord 机器人。
要添加另一个命令,在
deploy-commands.ts 中定义它,再次运行该脚本,并在 bot.ts 中为其名称添加一个 if 分支。Discord.js 文档涵盖了命令选项、权限、按钮、嵌入和其余 API。
当你部署时,没有构建或打包步骤。Bun 直接运行
bot.ts 及其导入的每个文件,因此你可以原样交付源代码,并使用与开发时相同的 bun run bot.ts 启动它。
deploy-commands.ts 在你的测试服务器中注册 /ping,这在构建期间是合适的作用域。要将机器人发布到它加入的每个服务器,改为全局注册:将路由更改为 Routes.applicationCommands(DISCORD_CLIENT_ID)。全局注册不使用服务器,因此你也可以从脚本检查和 .env.local 中删除 DISCORD_GUILD_ID。
要让机器人保持在线并在崩溃或重启后恢复运行,可以在进程管理器下运行它。
systemd
将你的机器人作为 Linux 守护进程运行
PM2
使用 PM2 管理你的机器人