← Все вопросы

Бот не отвечает на сообщения — что я делаю не так?

Задан 27 месяцев назад598 просмотров2 ответа
8

Запустил скрипт, ошибок в терминале нет, но бот молчит — пишу ему, а он не отвечает. Токен вроде вставил. Куда копать?

2 ответа

12
✓ Принятый ответ — помог автору

Пробегись по этому чек-листу — обычно дело в одном из пунктов:

  1. Не запущен polling. Проверь, что в конце есть asyncio.run(main()), а внутри mainawait dp.start_polling(bot). Без этого бот просто не слушает Telegram.
  2. Скрипт не работает в фоне. Бот живёт, только пока python bot.py крутится в терминале. Закрыл окно — бот замолчал.
  3. Неверный/чужой токен. Если токен от другого бота или с опечаткой, ты пишешь не тому боту. Проверь у BotFather.
  4. Хендлер не подходит под сообщение. Например, ты сделал только @dp.message(Command("start")), а пишешь обычный текст — под него хендлера нет. Добавь общий @dp.message().
  5. Несколько копий бота. Если запустил скрипт дважды, Telegram запутается. Останови всё и запусти один раз.

Чаще всего у новичков — пункт 1 или 4.

5

Если в терминале мелькает что-то вроде TerminatedByOtherGetUpdates или Conflict: terminated by other getUpdates — это как раз пункт 5: где-то уже запущена ещё одна копия бота (или ты не закрыл прошлый запуск). Закрой все терминалы с ботом и запусти заново.

Ваш ответ

Войдите, чтобы ответить на вопрос.