已配置token仍报token invalid错误的Discord机器人Heroku部署求助
修复方案
所需修改的内容按优先级排列如下:
- 补充package.json的启动命令
你当前的package.json中scripts字段缺少Heroku默认执行的start启动项,修改scripts部分为:"scripts": { "start": "node index.js", "test": "echo \"Error: no test specified\" && exit 1" }, - 新增Procfile启动配置文件
在项目根目录创建无后缀名的Procfile文件,写入以下内容:
使用worker类型进程可以避免Heroku的HTTP端口检测报错,也不会因无端口响应被系统强制回收。worker: npm start - 配置Heroku环境变量
进入Heroku对应应用的后台,依次打开「Settings」-「Config Vars」-「Reveal Config Vars」,新增变量:KEY为token,VALUE为你的Discord机器人令牌,保存即可。 - 开启Discord后台特权网关意图
进入Discord Developer Portal的对应机器人应用页,打开「Bot」页面下「Privileged Gateway Intents」板块的Message Content Intent开关,否则代码中配置的消息类意图会被网关拦截,导致登录失败。 - (可选)补充dotenv引入配置
如果需要本地测试时正常读取.env文件的token,可在index.js文件最开头添加一行:
该配置不会影响Heroku侧的环境变量读取。require('dotenv').config() - 部署验证
所有修改完成后重新推送代码到Heroku,可在应用后台的日志页面查看运行状态,出现Hello!日志即说明部署成功。
内容的提问来源于stack exchange,提问作者TheoChow
相关产品推荐
相关产品推荐

