平台
Discord 机器人
使用 Python(discord.py)或 Node.js(discord.js)的 Discord 机器人:需求中该写什么、如何在 Codexe 中试运行机器人、各套餐的运行时间限制,以及如何保护 token 的安全。
更新于
Codexe 可以用 Python(discord.py) 或 Node.js(discord.js) 生成完整的 Discord 机器人项目,使用斜杠命令。
#需求中该写什么
- 库(Python 或 Node.js)。
- 每个斜杠命令及其选项,以及谁可以使用。
- 需要响应的事件(成员加入、消息、反应)。
- 存储(JSON、SQLite……)以及任何外部 API。
- 你愿意启用哪些 intent。Message Content 和 Server Members 是特权 intent,必须在 Discord 开发者门户中开启。
#Token
生成的机器人会从 DISCORD_TOKEN 环境变量中读取 token(BOT_TOKEN 或 TOKEN 也可以)。它永远不会写进源代码,也不会生成 .env 文件。请像对待密码一样对待 token:如果泄露了,请在 Discord 开发者门户中重置它。
#在 Codexe 中试运行机器人
机器人项目有一个托管面板,无需搭建服务器就能试用机器人。粘贴你的机器人 token(加密存储,你可以删除它),然后使用启动、停止、重启,并查看控制台。
这是一个测试环境,而不是永久托管:
| 套餐 | 每滚动 24 小时的运行时间 |
|---|---|
| Free | 15 分钟 |
| Pro | 4 小时 |
| Business | 12 小时 |
| Enterprise | 24 小时 |
所有套餐都一样:一次会话 30 分钟后停止,每个账号同一时间只能运行一个机器人,启动次数也有频率限制。机器人在隔离环境中运行,可以访问互联网,但无法访问 Codexe 自己的系统。
#验证
Discord 机器人不会经过构建验证。已就绪表示生成已完成(参见项目生命周期)。请用试运行来检查它们。
#自己运行
下载 ZIP,安装依赖(pip install -r requirements.txt 或 npm install),在你的环境中设置 DISCORD_TOKEN,然后启动它。用 bot 和 applications.commands 权限范围把机器人邀请到你的服务器。
#常见问题
| 症状 | 可能的原因 |
|---|---|
| 斜杠命令没有出现 | 命令还没有同步。全局同步最多可能需要一小时;服务器(guild)同步是即时的。 |
| 机器人在线,但不理会消息 | 开发者门户中没有启用某个特权 intent。 |
| “The application did not respond” | 命令处理超过了 3 秒,且没有延迟响应。请让聊天对响应做延迟处理(defer)。 |