Skip to main content

简介

要在 Square Cloud 上开发和托管 Discord 机器人,遵循一套结构化的配置和前置条件流程至关重要。本技术指南将涵盖整个过程,从初始设置到生产环境部署。

前置条件

  • Square Cloud 账户:通过注册页面使用你的邮箱进行注册。
  • 有效套餐:为你的应用提供专属资源和优化的性能。查看我们可用的套餐,选择最适合你需求的方案。

创建项目

你需要一个 Discord 账户来创建和管理机器人。如果还没有,请在 Discord 官方网站 上创建。

在 Discord 上创建机器人应用

创建应用

访问 开发者门户 并点击 “New Application”。为你的机器人指定一个名称,然后点击 “Create” 创建应用。
在开发者门户中创建 Discord 应用

生成身份验证令牌

创建应用后,导航到 “Bot” 选项卡并点击 “Reset Token” 以生成身份验证令牌。复制它:你将在 Square Cloud 上把它设置为环境变量,而绝不是写在代码中。
生成 Discord 机器人身份验证令牌

启用特权 Intents

示例机器人会读取消息文本,因此需要 Message Content Intent。停留在 “Bot” 选项卡,向下滚动到 “Privileged Gateway Intents”,然后启用 Message Content Intent。本示例不需要另外两个特权 intent(Presence 和 Server Members)。
启用 Discord 特权网关 intents
关键安全提示:请对你的机器人令牌绝对保密。此令牌授予对机器人的完全控制权。切勿将它写在代码中或放进 ZIP:下面的示例会从 DISCORD_TOKEN 环境变量中读取它。

开发项目

现在我们有了机器人令牌,就可以开始编写代码了。你可以使用你喜欢的语言来实现。
Node.js 环境搭建
  1. 确认系统中已安装 Node.js。如果没有,请从 Node.js 官方网站 下载。
  2. 初始化一个新的 Node.js 项目:
Terminal
  1. 安装 Discord.js 库:
Terminal
  1. 创建一个 JavaScript 文件(例如 index.js),并添加以下代码来创建一个基础的 Discord 机器人:
index.js
代码使用 discord.js v14,其中 ready 事件为 Events.ClientReady("clientReady")。旧的 "ready" 名称已被弃用。

配置 Square Cloud

在项目根目录、主文件旁边创建 squarecloud.app 文件。它告诉 Square Cloud 如何运行你的机器人:
  • MAIN 是 Square Cloud 运行的文件,MEMORY 是机器人的内存(单位 MB)。机器人至少需要 256 MB;512 MB 则留有增长空间。
  • AUTORESTART=true 会在机器人崩溃时重新启动它。请参阅自动重启的工作方式。
  • 没有 SUBDOMAIN:机器人不提供网页。
你的 ZIP 包含主文件、它的依赖文件(package.json 或 requirements.txt)和 squarecloud.app。不要包含 node_modules:Square Cloud 会在部署时安装依赖。通过控制面板上传时,上传表单可以为你填写这些设置。所有字段请参阅配置文件参考。

设置机器人令牌

你的代码从 DISCORD_TOKEN 环境变量读取令牌,因此令牌永远不会出现在你的文件中。可以通过以下任一方式设置:
  • 控制面板:在上传页面打开 Advanced configuration,添加名为 DISCORD_TOKEN 的变量,值为你的令牌。对于已部署的机器人,请在应用的 Environment Variables 页面添加它,然后重启机器人。
  • CLI:上传机器人后(参见部署),立即使用 squarecloud app env set 设置它并重启机器人:
机器人在启动时读取环境变量,因此每次修改后都要重启它。管理环境变量的其他方式请参阅环境变量。
如果想先在你的电脑上运行机器人,请在终端中设置该变量:在 macOS 和 Linux 上使用 export DISCORD_TOKEN=your_token_here,在 PowerShell 中使用 $env:DISCORD_TOKEN="your_token_here"。

部署

准备好项目文件后,你现在可以将它们上传到 Square Cloud 并托管你的项目。 为此,请创建一个包含所有项目文件的 ZIP 文件。

通过控制面板

1

访问上传页面

访问上传页面并上传你的项目 zip 文件。
2

配置你的环境

上传 zip 后,你需要为项目配置名称、主文件或运行时环境以及其他设置。
如果你上传的是 Web 项目,请务必选择 “Web Publication” 并为项目设置子域名。
3

部署你的项目

最后,点击 “Deploy” 按钮,即可将项目托管到 Square Cloud。
部署完成后,你可以在控制面板中监控项目的状态和日志。
正在上传应用到 Square Cloud
4

确认你的应用已上线

首次部署通常在一分钟内完成。在控制面板中,等待你的应用状态显示为运行中,并检查日志中是否有启动错误。
如果你部署的是网站或 API,请在浏览器中打开 https://<your-subdomain>.squareweb.app,你应该能看到应用正常响应。如果你部署的是机器人,发送一条命令确认它已上线。
应用无法启动?请参见故障排除指南,了解最常见的原因和解决方法。

通过 CLI

要使用此方法,你的项目根目录中需要有一个名为 squarecloud.app 的配置文件。它告诉 Square Cloud 如何运行你的应用。

配置文件指南

了解如何创建定义你应用环境的 squarecloud.app 配置文件。
1

安装 CLI

安装 Square Cloud CLI。如果你已经安装,运行同一条命令即可更新:
2

登录

运行下面的命令。它会打开你的浏览器:在浏览器中批准登录后,CLI 即可使用。无需复制任何 API 密钥。如需在脚本和 CI 中使用,请参阅 CLI 身份验证。
3

上传你的项目

在项目文件夹中运行下面的命令。CLI 会将当前文件夹打包为 zip(排除 squarecloud.ignore 中列出的内容)并上传:
要上传你自己创建的 zip,请通过 --file 传入:
4

确认你的应用已上线

首次部署通常在一分钟内完成。直接在终端中检查你的应用状态和日志:
如果你部署的是网站或 API,请在浏览器中打开 https://<your-subdomain>.squareweb.app,你应该能看到应用正常响应。如果你部署的是机器人,发送一条命令确认它已上线。
应用无法启动?请参见故障排除指南,了解最常见的原因和解决方法。

测试机器人

如果你正确地完成了所有步骤,下一步就是邀请你的机器人进行测试。为此,请按照以下步骤操作:
  1. 访问 开发者门户 并选择你的机器人。
  2. 导航到 “OAuth2” 选项卡,进入 “OAuth2 URL Generator”。
  3. 在 “Scopes” 下勾选 “bot” 选项。
  4. 在 “Bot Permissions” 下只勾选示例需要的权限:View Channels、Send Messages 和 Read Message History。避免勾选 Administrator:机器人很少需要它,而且一旦令牌泄露,对方就能控制你的整个服务器。
  5. 复制生成的 URL,在浏览器中打开并将机器人添加到你的服务器。URL 类似于这样:
68608 是这三项权限之和。请将 YOUR_CLIENT_ID 替换为你应用的 ID,它显示在 “General Information” 选项卡中。如果你添加了需要更多权限的命令,请勾选这些权限并生成新的 URL。 现在,要测试是否一切正常,请在你的服务器上执行以下命令:!hello。
部署后测试 Discord 机器人

更多资源

有关使用 discord.py 和 discord.js 创建机器人的更多信息,请访问 discord.py 官方文档 和 discord.js 官方指南。在那里,你会找到详细的指南、教程和 API 文档,帮助你充分利用这些库。

后续步骤

Discord 机器人错误

修复无效令牌、缺少 intents 等常见错误。

环境变量

管理机器人的令牌和其他密钥。

Lavalink 服务器

托管 Lavalink 服务器,让你的机器人播放音乐。

联系我们

如果你仍然遇到技术问题,我们的专业支持团队可以为你提供帮助。联系我们,我们很乐意协助你解决任何问题,支持质量正是开发者给予 Square Cloud 4.9/5 评分(共 402 条评价)(Google 与 Trustpilot)的重要原因之一。