Пишем Telegram-бот на Go
-
Сегодня создадим простого Telegram-бота на языке Go, который будет отвечать на команду /start сообщением “Привет мир!”.
Первое что нам понадобится это установить зависимости, надеюсь что у вас Go уже установлен?
Для работы используем библиотеку
go-telegram-bot-api
. Установите её:go get github.com/go-telegram-bot-api/telegram-bot-api/v5
Далее создаем файл main.go и вставьте следующий код:
package main import ( "log" tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5" ) func main() { // Замените "YOUR_BOT_TOKEN" на токен вашего бота bot, err := tgbotapi.NewBotAPI("YOUR_BOT_TOKEN") if err != nil { log.Panic(err) } bot.Debug = false // Включите true для отладки // Настраиваем параметры получения обновлений updateConfig := tgbotapi.NewUpdate(0) updateConfig.Timeout = 60 // Таймаут ожидания обновлений (в секундах) // Получаем обновления updates := bot.GetUpdatesChan(updateConfig) // Обрабатываем входящие сообщения for update := range updates { if update.Message != nil && update.Message.IsCommand() { // Проверяем команду /start if update.Message.Command() == "start" { // Формируем ответ msg := tgbotapi.NewMessage(update.Message.Chat.ID, "Привет!") msg.ReplyToMessageID = update.Message.MessageID // Отправляем сообщение if _, err := bot.Send(msg); err != nil { log.Panic(err) } } } } }
p.s. честно говоря на питоне слегка попроще писать ботов, но да ладно едем дальше))
Теперь давайте запустим нашего бота, для этого не забудьте заменить
YOUR_BOT_TOKEN
, на токен вашего бота (его выдает BotFather при создании бота).Запустим бота:
go run main.go
После перейдите в телегу и напишите вашему боту в Telegram команду /start. Он ответит “Привет!”.
Ну и в принципе все! Теперь можно придумывать всякие штучки, программировать бота как душе угодно.
Я уже писал про бота на питоне в предидущем посте если кому-то интересно - ссылка -
Ну, статья, конечно, интересная, но как-то всё слишком поверхностно. Видимо, автор решил, что мы все уже знаем, как создать бота в Telegram, и просто пропустил базовые шаги типа “как получить токен через BotFather”. Окей, ладно, предположим, что это “домашнее задание” для читателя.
А выбор go-telegram-bot-api вообще остался загадкой. Это типа потому что она первая в выдаче Google? Насколько я знаю, есть альтернативы (например, telebot), которые выглядят чуть более дружелюбно. Или может, автор просто фанат этой либы?
Кстати, про производительность Go — да, звучит красиво, но давайте честно: сколько из нас пишут ботов, которые обрабатывают миллионы запросов в секунду? Для большинства задач Python с его python-telegram-bot справится на ура, и писать будет в разы быстрее. Но если хочется помучиться с типизацией и компиляцией — то да, Go ваш выбор!
В целом, за пример спасибо, хотя код мог быть и покомпактнее. Если кто-то уже наколхозил callback-кнопки или inline-режим, буду рад глянуть готовый пример. А то самому писать лень, а копипастить — это святое.
-
Ну, статья, конечно, интересная, но как-то всё слишком поверхностно. Видимо, автор решил, что мы все уже знаем, как создать бота в Telegram, и просто пропустил базовые шаги типа “как получить токен через BotFather”. Окей, ладно, предположим, что это “домашнее задание” для читателя.
А выбор go-telegram-bot-api вообще остался загадкой. Это типа потому что она первая в выдаче Google? Насколько я знаю, есть альтернативы (например, telebot), которые выглядят чуть более дружелюбно. Или может, автор просто фанат этой либы?
Кстати, про производительность Go — да, звучит красиво, но давайте честно: сколько из нас пишут ботов, которые обрабатывают миллионы запросов в секунду? Для большинства задач Python с его python-telegram-bot справится на ура, и писать будет в разы быстрее. Но если хочется помучиться с типизацией и компиляцией — то да, Go ваш выбор!
В целом, за пример спасибо, хотя код мог быть и покомпактнее. Если кто-то уже наколхозил callback-кнопки или inline-режим, буду рад глянуть готовый пример. А то самому писать лень, а копипастить — это святое.
@Mugiwara Ну ты душный конечно,
go-telegram-bot-api
я использую лишь потому что уже работал с ним, а если хочется дженериков и прочих финтов бери -telebot
.А по поводу получения токена, тут уж извините! BotFather - 3 команды написать вон тебе Яндекс Алиса выдаст сразу как это сделать.
Готовый пример будет попозже ))
© 2024 - 2025 RosDesk, Inc. Все права защищены.