раздел 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 и вызывает нужный обработчик.

Ссылки