Telegram-боты на Go: практический курс
Telegram-бот — идеальный первый проект на Go: живой результат за вечер, ноль настройки фронта и реальный пользователь уже сегодня. Для русскоязычного разработчика это ещё и самый частый фриланс-заказ.
Курс построен на официальной библиотеке go-telegram-bot-api. Мы идём от эхо-бота через long polling к webhook-серверу, добавляем команды, reply- и inline-клавиатуры, состояния диалога, медиа, рассылки, напоминания и ограничения Telegram. Финал — бот-трекер привычек, который можно сразу выложить на VPS.
Чему научитесь
Чему научитесь
- Создавать бота через BotFather и хранить токен безопасно
- Получать обновления через long polling и webhook
- Отвечать сообщениями, командами и клавиатурами
- Строить многошаговые диалоги с сохранением состояния
- Работать с фото, документами и форматированием
- Деплоить бота на VPS с systemd
Для кого курс
- Новичкам: бот — самый мотивирующий первый проект
- Backend-разработчикам, которым нужен внутренний бот-ассистент
- Фрилансерам: боты — ходовой товар на биржах
Что понадобится
- Курс Go с нуля или уверенный базовый синтаксис
- Аккаунт Telegram и 3 минуты на регистрацию бота
Программа курса: 25 уроков
- 1Знакомство: зачем писать ботов на GoЧто умеет Bot API и почему Go для ботов удобный выбор.~16 мин · боты на golang, telegram bot api обзор
- 2BotFather: создаем бота и получаем токен/newbot, токен, описание: первые минуты бота в Telegram.~16 мин · botfather создание бота, токен телеграм бота
- 3telegram-bot-api: установка и первый кодgo get, NewBotAPI, debug-режим: проверяем токен.~18 мин · tgbotapi установка, telegram bot api go подключение
- 4Первый бот: эхо-собеседникGetUpdates, Message.Text и Reply: бот повторяет за вами.~18 мин · эхо бот go, первый телеграм бот
- 5Long polling: как бот слышит сообщенияUpdateConfig, Timeout и цикл обновлений: что происходит под капотом.~18 мин · long polling telegram, getupdates go
- 6Отправка сообщений: NewMessage и ChatIDНовый текст, ответ на сообщение, копирование сообщений.~18 мин · отправка сообщений telegram, chatid go
- 7Команды: /start, /help и SetMyCommandsCommand(), CommandArgs и меню команд в интерфейсе.~18 мин · команды телеграм бота, setmycommands
- 8Reply-клавиатуры: кнопки вместо вводаReplyKeyboardMarkup, OneTimeKeyboard: пользователь жмёт, а не пишет.~18 мин · reply keyboard go, клавиатура телеграм бота
- 9Inline-клавиатуры и callback-запросыInlineKeyboardMarkup, CallbackQuery и AnswerCallbackQuery.~20 мин · inline клавиатура go, callbackquery telegram
- 10Состояние диалога: анкета по шагамFSM на карте: бот задаёт вопросы по очереди и не путается.~20 мин · состояние бота go, fsm телеграм бот
- 11Хранение данных бота: память и RedisКарта с мьютексом, переход к Redis: куда девать ответы.~18 мин · хранение данных бота, redis telegram бот
- 12Медиа: фото, документы и voiceNewPhoto, NewDocument, FileID: бот принимает и отдаёт файлы.~18 мин · фото telegram bot go, файлы tgbotapi
- 13Форматирование: HTML в сообщенияхParseMode, жирный, курсив, код и экранирование пользовательского ввода.~16 мин · форматирование telegram, parsemode html
- 14Рассылки: уведомления подписчикамСписок chat_id, паузы и ограничения: как не забанить бота.~18 мин · рассылка telegram bot, уведомления бот go
- 15Inline-режим: бот в поле поискаInlineQuery и AnswerInlineQuery: подсказки в любом чате.~18 мин · inline режим бота, inlinequery go
- 16Редактирование сообщений и многостраничное менюEditMessageText и дизайн callback data: живые интерфейсы.~18 мин · editmessagetext, меню telegram бота
- 17Ошибки и лимиты Telegram: 429 и RetryAfterНормальные ответы API, таймауты и вежливые паузы.~16 мин · лимиты telegram bot, 429 telegram
- 18Webhook: бот как HTTP-серверListenAndServe, NewWebhook и обработка Update из POST.~20 мин · webhook telegram go, телеграм вебхук
- 19Напоминания: goroutine и тикерtime.Ticker в фоне, тайм-зоны пользователя: бот-будильник.~18 мин · напоминания бот go, time ticker goroutine
- 20Платежи: инвойсы и Telegram StarsNewInvoice, провайдеры и тестовые платежи: обзорная карта.~16 мин · платежи telegram bot, telegram stars
- 21Mini Apps: веб-интерфейс внутри TelegramWebApp-кнопка, что умеет Mini App и когда она нужна боту.~16 мин · telegram mini app, webapp кнопка
- 22Реакции, стикеры и живой тон ботаSendSticker, SetMessageReaction: меньше текста, больше эмоций.~16 мин · стикеры telegram bot, реакции бота
- 23Тестирование бота: хендлеры без TelegramЮнит-тесты логики, мок Update: бот не ломается на проде.~18 мин · тесты телеграм бота, юнит тесты бота
- 24Деплой на VPS: systemd и логиСборка, автозапуск, env-файл: бот переживает перезагрузку.~18 мин · деплой телеграм бота, systemd go сервис
- 25Итоговый проект: бот-трекер привычекКоманды, inline, состояния и сохранение: законченный продукт.~24 мин · трекер привычек бот, телеграм бот проект go
Вопросы о курсе
Нужен ли сервер уже на старте?
Нет. Первая половина курса работает через long polling с вашего ноутбука. Webhook и VPS появляются ближе к деплою, когда бот уже живой.
Какая библиотека используется?
go-telegram-bot-api/telegram-bot-api — самая популярная обёртка Bot API с простыми структурами. Принципы переносятся на telebot и любого преемника без труда.
Можно ли ботом заработать?
Да: мини-сервисы, уведомления, чат-ассистенты. Бизнес-логика в курсе обычный Go — ваш опыт с Redis и базами переносится напрямую.