«Ошибка: указан неверный токен». даже если переменные Heroku установлены - PullRequest
0 голосов
/ 01 мая 2019

Я создаю бот-диск и пытаюсь разместить его в Heroku. После установки всех зависимостей я попытался протестировать их перед развертыванием, но появляется следующая ошибка:

nicolasperez@nicolasperez-Nitro-AN515-51:~/Documents/DMGBOT$ heroku local
3:00:24 AM worker.1 |  > dmgbot@1.0.0 start /home/nicolasperez/Documents/DMGBOT
3:00:24 AM worker.1 |  > node bot.js
3:00:25 AM worker.1 |  (node:7624) UnhandledPromiseRejectionWarning: Error: An invalid token was provided.
3:00:25 AM worker.1 |      at Promise (/home/nicolasperez/Documents/DMGBOT/node_modules/discord.js/src/client/rest/RESTMethods.js:33:44)
3:00:25 AM worker.1 |      at new Promise (<anonymous>)
3:00:25 AM worker.1 |      at RESTMethods.login (/home/nicolasperez/Documents/DMGBOT/node_modules/discord.js/src/client/rest/RESTMethods.js:32:12)
3:00:25 AM worker.1 |      at Client.login (/home/nicolasperez/Documents/DMGBOT/node_modules/discord.js/src/client/Client.js:277:30)
3:00:25 AM worker.1 |      at Object.<anonymous> (/home/nicolasperez/Documents/DMGBOT/bot.js:194:5)
3:00:25 AM worker.1 |      at Module._compile (module.js:652:30)
3:00:25 AM worker.1 |      at Object.Module._extensions..js (module.js:663:10)
3:00:25 AM worker.1 |      at Module.load (module.js:565:32)
3:00:25 AM worker.1 |      at tryModuleLoad (module.js:505:12)
3:00:25 AM worker.1 |      at Function.Module._load (module.js:497:3)
3:00:25 AM worker.1 |      at Function.Module.runMain (module.js:693:10)
3:00:25 AM worker.1 |      at startup (bootstrap_node.js:188:16)
3:00:25 AM worker.1 |      at bootstrap_node.js:609:3
3:00:25 AM worker.1 |  (node:7624) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
3:00:25 AM worker.1 |  (node:7624) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
[DONE] Killing all processes with signal  SIGINT
3:00:25 AM worker.1 Exited Successfully

Я не понимаю, почему это происходит, поскольку я уже установил переменные конфигурации в настройках приложения в Heroku.

Вот код для бота: важная строка - последняя, ​​где бот пытается войти в систему с действительным токеном.

const botconfig = require("./botconfig.json");
const Discord = require("discord.js");
const Gamedig = require('gamedig');
const bot = new Discord.Client({disableEveryone: true});

bot.on("ready", async message => {...});

bot.on("message", async message => {...});

bot.login(process.env.BOT_TOKEN);

Я много раз пытался сбросить токен бота, заключая его в кавычки и включая .json с токеном, но пока ничего не получалось.
Почему конфигурационные переменные не работают, зная, что они настроены на действительный дискотский бот-токен? Какие другие решения могут помочь моему боту работать без проблем?

1 Ответ

0 голосов
/ 01 мая 2019

Команда heroku local запускает приложение на вашем компьютере: это означает, что переменные окружения, которые отображаются в process.env, являются вашими, а не теми, которые вы установили в Heroku.

InЧтобы загрузить переменные Heroku в локальный экземпляр, вам нужно использовать файл .env: этот файл будет считан Heroku и он вставит эти переменные в среду.Вы можете найти больше информации об этом в "Запуск приложений локально" от Heroku.
Также есть руководство о том, как скопировать существующие переменные в файл .env в конфигурации "Копировать Heroku.vars в ваш локальный файл .env " section.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...