← Все вопросы
Бот не отвечает на сообщения — что я делаю не так?
8
Запустил скрипт, ошибок в терминале нет, но бот молчит — пишу ему, а он не отвечает. Токен вроде вставил. Куда копать?
2 ответа
12
✓ Принятый ответ — помог автору
Пробегись по этому чек-листу — обычно дело в одном из пунктов:
- Не запущен polling. Проверь, что в конце есть
asyncio.run(main()), а внутриmain—await dp.start_polling(bot). Без этого бот просто не слушает Telegram. - Скрипт не работает в фоне. Бот живёт, только пока
python bot.pyкрутится в терминале. Закрыл окно — бот замолчал. - Неверный/чужой токен. Если токен от другого бота или с опечаткой, ты пишешь не тому боту. Проверь у BotFather.
- Хендлер не подходит под сообщение. Например, ты сделал только
@dp.message(Command("start")), а пишешь обычный текст — под него хендлера нет. Добавь общий@dp.message(). - Несколько копий бота. Если запустил скрипт дважды, Telegram запутается. Останови всё и запусти один раз.
Чаще всего у новичков — пункт 1 или 4.
5
Если в терминале мелькает что-то вроде TerminatedByOtherGetUpdates или Conflict: terminated by other getUpdates — это как раз пункт 5: где-то уже запущена ещё одна копия бота (или ты не закрыл прошлый запуск). Закрой все терминалы с ботом и запусти заново.
Ваш ответ
Войдите, чтобы ответить на вопрос.