Перейти к содержанию
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
Логотип бренда
Категории
  1. Главная
  2. Категории
  3. Языки программирования
  4. GoLang
  5. Пишем Telegram-бот на Go

Пишем Telegram-бот на Go

Запланировано Прикреплена Закрыта Перенесена GoLang
golangtelegrambot
3 Сообщения 2 Постеры 33 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • kirilljsK Не в сети
    kirilljsK Не в сети
    kirilljs
    js
    написал отредактировано
    #1

    Сегодня создадим простого 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. Он ответит “Привет!”.

    Ну и в принципе все! Теперь можно придумывать всякие штучки, программировать бота как душе угодно.
    Я уже писал про бота на питоне в предидущем посте если кому-то интересно - ссылка

    1 ответ Последний ответ
    0
    • MugiwaraM Не в сети
      MugiwaraM Не в сети
      Mugiwara
      написал отредактировано
      #2

      Ну, статья, конечно, интересная, но как-то всё слишком поверхностно. Видимо, автор решил, что мы все уже знаем, как создать бота в Telegram, и просто пропустил базовые шаги типа “как получить токен через BotFather”. Окей, ладно, предположим, что это “домашнее задание” для читателя.

      А выбор go-telegram-bot-api вообще остался загадкой. Это типа потому что она первая в выдаче Google? Насколько я знаю, есть альтернативы (например, telebot), которые выглядят чуть более дружелюбно. Или может, автор просто фанат этой либы? 😅

      Кстати, про производительность Go — да, звучит красиво, но давайте честно: сколько из нас пишут ботов, которые обрабатывают миллионы запросов в секунду? Для большинства задач Python с его python-telegram-bot справится на ура, и писать будет в разы быстрее. Но если хочется помучиться с типизацией и компиляцией — то да, Go ваш выбор!

      В целом, за пример спасибо, хотя код мог быть и покомпактнее. Если кто-то уже наколхозил callback-кнопки или inline-режим, буду рад глянуть готовый пример. А то самому писать лень, а копипастить — это святое. 🙃

      kirilljsK 1 ответ Последний ответ
      0
      • MugiwaraM Mugiwara

        Ну, статья, конечно, интересная, но как-то всё слишком поверхностно. Видимо, автор решил, что мы все уже знаем, как создать бота в Telegram, и просто пропустил базовые шаги типа “как получить токен через BotFather”. Окей, ладно, предположим, что это “домашнее задание” для читателя.

        А выбор go-telegram-bot-api вообще остался загадкой. Это типа потому что она первая в выдаче Google? Насколько я знаю, есть альтернативы (например, telebot), которые выглядят чуть более дружелюбно. Или может, автор просто фанат этой либы? 😅

        Кстати, про производительность Go — да, звучит красиво, но давайте честно: сколько из нас пишут ботов, которые обрабатывают миллионы запросов в секунду? Для большинства задач Python с его python-telegram-bot справится на ура, и писать будет в разы быстрее. Но если хочется помучиться с типизацией и компиляцией — то да, Go ваш выбор!

        В целом, за пример спасибо, хотя код мог быть и покомпактнее. Если кто-то уже наколхозил callback-кнопки или inline-режим, буду рад глянуть готовый пример. А то самому писать лень, а копипастить — это святое. 🙃

        kirilljsK Не в сети
        kirilljsK Не в сети
        kirilljs
        js
        написал отредактировано
        #3

        @Mugiwara Ну ты душный конечно, go-telegram-bot-api я использую лишь потому что уже работал с ним, а если хочется дженериков и прочих финтов бери - telebot.

        А по поводу получения токена, тут уж извините! BotFather - 3 команды написать вон тебе Яндекс Алиса выдаст сразу как это сделать.

        Готовый пример будет попозже ))

        1 ответ Последний ответ
        0

        Категории

        • Главная
        • Новости
        • Фронтенд
        • Бекенд
        • Языки программирования

        Контакты

        • Сотрудничество
        • info@rosdesk.ru
        • Наш чат
        • Наш ТГ канал

        © 2024 - 2025 RosDesk, Inc. Все права защищены.

        Политика конфиденциальности
        • Войти

        • Нет учётной записи? Зарегистрироваться

        • Войдите или зарегистрируйтесь для поиска.
        • Первое сообщение
          Последнее сообщение
        0
        • Категории
        • Последние
        • Метки
        • Популярные
        • Пользователи
        • Группы