Создаём Телеграм-бота бесплатно
Бот, который живёт на бесплатном хостинге и не падает: BotFather, вебхуки, деплой и то, что обычно ломается на второй день.
Телеграм-бот — самый быстрый способ довести идею до живых пользователей. Не нужен апстор, не нужен дизайн, не нужен домен. Ниже — путь от пустой папки до бота, который работает без вашего ноутбука и не стоит денег.
Что понадобится
Аккаунт в Телеграме, любой редактор кода и один бесплатный аккаунт на хостинге. Всё. Ни карты, ни домена, ни сервера в Германии.
Регистрируем бота у BotFather
Открываем @BotFather, отправляем /newbot, придумываем имя и username. В ответ приходит токен — длинная строка через двоеточие. Это пароль от бота: не кладите его в репозиторий, держите в переменных окружения.
Первый обработчик
Минимальный бот — это функция, которая получает апдейт и отвечает текстом. Начните с одной команды /start: она проверяет, что токен верный, вебхук доехал и хостинг живой.
@dp.message(CommandStart())
async def start(message: Message):
await message.answer("Привет. Я готов.")
Если этот шаг работает — дальше уже вопрос продуктовой логики, а не инфраструктуры.
Поллинг или вебхук
Поллинг проще: бот сам спрашивает сервер о новых сообщениях. Он идеален для локальной разработки и плохо живёт на бесплатных хостингах, которые засыпают. Вебхук наоборот: Телеграм сам стучится в ваш URL, процесс просыпается по запросу. Для бесплатного деплоя берите вебхук.
Деплой
- Кладём код в репозиторий.
- Подключаем репозиторий к хостингу, добавляем токен в переменные окружения.
- После первого успешного деплоя один раз вызываем
setWebhookс публичным адресом сервиса.
Что ломается на второй день
Бесплатные инстансы засыпают — первый ответ после простоя приходит с задержкой в несколько секунд. Телеграм повторяет апдейт, если вы ответили не 200 — обработчик должен быть идемпотентным. И состояние: если хранить его в памяти процесса, оно исчезнет при следующем деплое. Даже маленькому боту нужна внешняя база.
Дальше
Когда бот стабильно отвечает, добавляйте по одной вещи за раз: клавиатуры, платежи, очередь задач. Каждая из них ломается по-своему, и разбираться в них по отдельности намного дешевле.