在 Heroku 上托管的 Typescript 中的 Discord Bot

2025-06-07

在 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. 设置IconUsername
图像 6. 转到OAuth2选项卡。

勾选“范围”bot下的复选框 您可以通过设置“机器人权限”来自定义您的机器人。 请注意,更改权限会更新用于邀请您的机器人加入服务器的权限。



link
图像 邀请您的机器人
当您打开上述步骤中的链接时,在新选项卡中您将看到以下页面,现在您可以将机器人添加到您的任何服务器

在此处查找详细步骤


第 2 步:编写 Discord 机器人代码

  1. 获取您的机器人的令牌,为此您必须返回开发人员门户,选择您的机器人并转到选项Bot卡,在那里您可以找到您的机器人token
    图像

  2. 编写机器人代码的最简单方法是分叉此 repo,然后在bot-template分支上工作。
    或者,您可以克隆存储库,特别是bot-template分支。

   $ git clone -b bot-template --single-branch https://github.com/MidasXIV/hive-greeter.git
  1. 接下来在存储库的根目录中创建一个.env文件并添加token以下内容:
   token=TOKEN_WHICH_YOU_GOT_FROM_DISCORD

.env文件采用键和值对,因此这里的键是令牌,如果您希望给出不同的令牌名称,请确保在src/sonfig/secrets.ts文件中更新相同的名称,因为它会查找“令牌”键。

   export const DISCORD_TOKEN = process.env["token"];
  1. 现在是时候安装和构建项目了
   $ npm install
   $ npm run start

NPM SCRIPTS您可以在文件中查看,运行启动命令应该构建项目并在http://localhost:5000/package.json上运行机器人;您可以在文件中修改端口src/index.ts

  1. 成功构建并运行项目后,您将看到
   Server started on port 5000
   Hive Greeter has started

现在您应该能够在 discord 服务器中看到您的在线机器人。

  1. 为了帮助您入门,模板包含两个命令greettime为了测试您的机器人,请转到服务器的任何文本频道并输入> greet,您将看到您的机器人回复
    图像

  2. 要添加更多命令,您必须在src/commands文件夹中添加一个包含参考greetCommand.ts文件的新类,然后您应该使用该文件导出该类,src/commands/index.ts以便您可以轻松地从中导入它src/CommandHandler.ts

  3. >您可以从文件中更新机器人的“前缀”( ) src/config/botConfig.ts


➡️ 步骤 3:在 Heroku 上部署机器人

  1. 安装Heroku Cli
  2. 运行时使用您的 Heroku 帐户凭据登录
   $ heroku login
  1. 现在通过运行以下命令创建一个名为 your-app-name 的应用程序:
   $ heroku create your-app-name
  1. 添加一个名为 heroku 的 Git 远程指向 Heroku:
   $ git remote add heroku https://git.heroku.com/your-app-name.git

将 Heroku 与 GitHub 集成如果您计划每次将更改推送到 GitHub 存储库时自动部署机器人,则需要执行此步骤。(详细步骤在这里

  1. 从Heroku 仪表板中选择您的应用程序
  2. 转到Deploy应用程序选项卡,
    • 启用 GitHub 集成:要配置 GitHub 集成,您必须通过 GitHub 进行身份验证。每个 Heroku 帐户只需执行一次此操作。
    • 应用程序连接到 Github:您必须使用您的机器人选择存储库。
    • 自动部署:当您为 GitHub 分支启用自动部署时,Heroku 会构建并部署到该分支的所有推送。图像

测试您的设置。此步骤并非必需,但强烈建议您执行。您应该在本地构建应用程序,以测试设置是否正确。

$ heroku local

Heroku CLI 现在将在http://localhost:5000/运行您的应用程序;如果没有遇到错误,则说明您走在正确的轨道上!

  1. 转到Settings应用程序选项卡以在部分中设置您的 discord 机器人令牌config vars
    图像

  2. 部署你的机器人到达这一步后你应该已经:

    • 开发了一个功能齐全的 Discord 机器人
    • 为 Heroku 部署设置存储库

如果一切顺利,您现在可以通过运行以下命令将您的应用程序部署到 Heroku:

   $ git push heroku master

注意:如果您已设置自动部署,您将能够在每次提交到主分支时部署您的应用程序。


完成上述步骤后,Heroku Cli 将为您提供托管应用程序的链接,如下所示:
https://you-app.herokuapp.com。您通常会在第一次部署时遇到问题,因为可能存在 dev-dependencies 中的某些依赖项或某些配置问题。

如果遇到任何问题,请运行

heroku logs --tail

在此处查找详细步骤


如果您遇到任何问题,请在下面的评论中告诉我:)


您可以在这里找到存储库:

GitHub 徽标 MidasXIV / hive-greeter

使用 Typescrit 和 Discord js 创建的 Discord 机器人,托管在 Heroku 上

Hive-greeter-徽标



步骤 1:将 Discord Bot 添加到您的服务器

显示步骤
屏幕 步骤
图像 1. 打开 Discord 开发者门户,

点击New Application
图像 2. 给你的 BOT 起一个新名字并点击Create
图像 3. 通过提供图像和描述来定制您的机器人。
图像 4. 在Bot选项卡下,单击Add Bot
图像 5. 设置IconUsername
图像 6. 转到OAuth2选项卡。

勾选“范围”bot下的复选框 您可以通过设置“机器人权限”来自定义您的机器人。 请注意,更改权限会更新用于邀请您的机器人加入服务器的权限。



link
图像 邀请您的机器人
当您打开上述步骤中的链接时,在新选项卡中您将看到以下页面,现在您可以将机器人添加到您的任何服务器

在此处查找详细步骤


第 2 步:编写 Discord 机器人代码

揭示
文章来源:https://dev.to/midasxiv/discord-bot-in-typescript-hosted-on-heroku-1c8p
PREV
ES6 Promise | Promise.all | Promise.race | Promise.allSettled Promise 状态定义
NEXT
“git nah” 和更多方便的 Git 别名