在 Heroku 上托管的 Typescript 中的 Discord Bot
大家好!我已经很久没有在 Dev 上写文章了!
过去几个月我一直在尝试使用 Typescript 进行开发并托管我自己的应用程序。
Glitch.me
自从决定禁用Uptime Robot之类的 ping 服务(它通常与 Glitch 一起用于托管 Discord 机器人)以来,这对我来说是一个绝佳的机会,可以在这个机器人上练习我的 Typescript,并在 Heroku 上托管。
因此,这里有一篇简短而详细的文章,介绍如何用 TypeScript 编写设置自己的 Discord 机器人。
➡️ 步骤 1:将 Discord Bot 添加到您的服务器
屏幕 |
步骤 |
 |
1. 打开 Discord 开发者门户,
点击New Application |
 |
2. 给你的 BOT 起一个新名字并点击Create |
 |
3. 通过提供图像和描述来定制您的机器人。 |
 |
4. 在Bot 选项卡下,单击Add Bot |
 |
5. 设置Icon 并Username |
 |
6. 转到OAuth2 选项卡。
勾选“范围”bot 下的复选框。 您可以通过设置“机器人权限”来自定义您的机器人。 请注意,更改权限会更新用于邀请您的机器人加入服务器的权限。
link |
 |
邀请您的机器人 当您打开上述步骤中的链接时,在新选项卡中您将看到以下页面,现在您可以将机器人添加到您的任何服务器 |
在此处查找详细步骤
第 2 步:编写 Discord 机器人代码
-
获取您的机器人的令牌,为此您必须返回开发人员门户,选择您的机器人并转到选项Bot
卡,在那里您可以找到您的机器人token
。

-
编写机器人代码的最简单方法是分叉此 repo,然后在bot-template
分支上工作。
或者,您可以克隆存储库,特别是bot-template
分支。
$ git clone -b bot-template --single-branch https://github.com/MidasXIV/hive-greeter.git
- 接下来在存储库的根目录中创建一个
.env
文件并添加token
以下内容:
token=TOKEN_WHICH_YOU_GOT_FROM_DISCORD
该.env
文件采用键和值对,因此这里的键是令牌,如果您希望给出不同的令牌名称,请确保在src/sonfig/secrets.ts
文件中更新相同的名称,因为它会查找“令牌”键。
export const DISCORD_TOKEN = process.env["token"];
- 现在是时候安装和构建项目了
$ npm install
$ npm run start
NPM SCRIPTS
您可以在文件中查看,运行启动命令应该构建项目并在http://localhost:5000/package.json
上运行机器人;您可以在文件中修改端口。src/index.ts
- 成功构建并运行项目后,您将看到
Server started on port 5000
Hive Greeter has started
现在您应该能够在 discord 服务器中看到您的在线机器人。
-
为了帮助您入门,模板包含两个命令greet
,time
为了测试您的机器人,请转到服务器的任何文本频道并输入> greet
,您将看到您的机器人回复

-
要添加更多命令,您必须在src/commands
文件夹中添加一个包含参考greetCommand.ts
文件的新类,然后您应该使用该文件导出该类,src/commands/index.ts
以便您可以轻松地从中导入它src/CommandHandler.ts
。
-
>
您可以从文件中更新机器人的“前缀”( ) src/config/botConfig.ts
。
➡️ 步骤 3:在 Heroku 上部署机器人
- 安装Heroku Cli
- 运行时使用您的 Heroku 帐户凭据登录
- 现在通过运行以下命令创建一个名为 your-app-name 的应用程序:
$ heroku create your-app-name
- 添加一个名为 heroku 的 Git 远程指向 Heroku:
$ git remote add heroku https://git.heroku.com/your-app-name.git
将 Heroku 与 GitHub 集成,如果您计划每次将更改推送到 GitHub 存储库时自动部署机器人,则需要执行此步骤。(详细步骤在这里)
- 从Heroku 仪表板中选择您的应用程序。
- 转到
Deploy
应用程序选项卡,
- 启用 GitHub 集成:要配置 GitHub 集成,您必须通过 GitHub 进行身份验证。每个 Heroku 帐户只需执行一次此操作。
- 应用程序连接到 Github:您必须使用您的机器人选择存储库。
- 自动部署:当您为 GitHub 分支启用自动部署时,Heroku 会构建并部署到该分支的所有推送。

测试您的设置。此步骤并非必需,但强烈建议您执行。您应该在本地构建应用程序,以测试设置是否正确。
Heroku CLI 现在将在http://localhost:5000/运行您的应用程序;如果没有遇到错误,则说明您走在正确的轨道上!
-
转到Settings
应用程序选项卡以在部分中设置您的 discord 机器人令牌config vars
。

-
部署你的机器人到达这一步后你应该已经:
- 开发了一个功能齐全的 Discord 机器人
- 为 Heroku 部署设置存储库
如果一切顺利,您现在可以通过运行以下命令将您的应用程序部署到 Heroku:
注意:如果您已设置自动部署,您将能够在每次提交到主分支时部署您的应用程序。
完成上述步骤后,Heroku Cli 将为您提供托管应用程序的链接,如下所示:
https://you-app.herokuapp.com
。您通常会在第一次部署时遇到问题,因为可能存在 dev-dependencies 中的某些依赖项或某些配置问题。
如果遇到任何问题,请运行
在此处查找详细步骤
如果您遇到任何问题,请在下面的评论中告诉我:)
您可以在这里找到存储库:
使用 Typescrit 和 Discord js 创建的 Discord 机器人,托管在 Heroku 上
文章来源:https://dev.to/midasxiv/discord-bot-in-typescript-hosted-on-heroku-1c8p