раздел 05
Шпаргалка
Всё нужное на одной странице.
Команды BotFather
/newbot создать нового бота, получить токен
/mybots список ваших ботов и их настройки
/setname сменить отображаемое имя
/setdescription текст в пустом чате до первого сообщения
/setabouttext краткое описание в профиле
/setuserpic аватар бота
/setcommands список команд в меню (формат: команда - описание)
/revoke отозвать токен и получить новый
/deletebot удалить бота
Базовые методы Bot API
getMe информация о боте (проверка токена)
sendMessage отправить текст
sendPhoto отправить фото
sendDocument отправить файл
getUpdates забрать новые сообщения (long polling)
setWebhook включить доставку через webhook
deleteWebhook выключить webhook (вернуться к polling)
answerCallbackQuery ответить на нажатие inline-кнопки
Чек-лист запуска бота
- [ ] Бот создан в
@BotFather, токен получен. - [ ] Токен лежит в
.env, а.envдобавлен в.gitignore. - [ ] Код читает токен из окружения, а не из исходников.
- [ ] Есть обработчик
/startи обработчик сообщений. - [ ] Локально запущено через polling, бот отвечает в чате.
- [ ] Для прода: сервер, процесс держится всегда (Docker), при наличии HTTPS - webhook.
- [ ] Ключи внешних API и токен не попадают в логи и в ответы пользователю.
Безопасность токена
- Токен - полный доступ к боту. Утёк - сразу
/revokeв@BotFather. - Никогда не коммитьте токен в git и не вставляйте в код напрямую.
- Не пишите токен в сообщения пользователю и в логи.
- На сервере храните в
.env, который не в репозитории.
Глоссарий
BotFather
Официальный бот Telegram, через которого создаются и настраиваются все остальные боты. Выдаёт токен.
Токен
Секретный ключ доступа к боту через Bot API. Вида 123456789:AA... Любой запрос к API подписывается им.
Bot API
HTTP-интерфейс Telegram для ботов: через него код отправляет сообщения и получает входящие события.
Polling (long polling)
Способ получать сообщения, при котором бот сам периодически опрашивает Telegram. Прост, работает без сервера и публичного адреса.
Webhook
Способ получать сообщения, при котором Telegram сам шлёт каждое событие POST-запросом на ваш HTTPS-URL. Нужен для прода, требует домен и SSL.
Update
Объект с информацией о входящем событии: кто, что и когда прислал. Библиотека разбирает update и вызывает нужный обработчик.
Ссылки
- Гайд по API - как дёргать внешние сервисы из кода.
- Подключение LLM по API - ключи, запросы, форматы ответа.
- Серверы и деплой - где развернуть бота, чтобы он работал постоянно.