Отправка Telegram сообщений с Go

При помощи библиотеки go-telegram-bot-api достаточно легко написать свою программу на Go для отправки сообщений в Telegram. Библиотека имеет множество реализованных методов для работы c Telegram API — отправка сообщений, загрузка изображений и медиафайлов, ответ на сообщения в группах и отслеживание новых событий в каналах.

Реализуем простую программу для отправки сообщений самому себе.

Для начала нужно будет создать нового бота и получить API Key. Как это сделать в подробностях мы опустим. Далее необходимо получить ID чата — кому бот будет отсылать сообщение. Процесс также тривиальный, достаточно отправить сообщение боту и реализовать чтение ботом полученного сообщения. В итоге мы получим желанный chat id.

Для отправки сообщения у нас имеется вся информация, создадим структуру Client и добавим ей метод SendMessage:

package main

import (
   "fmt"
   "log"

   tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api"
)

type Client struct {
   bot *tgbotapi.BotAPI
}

func New(apiKey string) *Client {
   bot, err := tgbotapi.NewBotAPI(apiKey)
   if err != nil {
      log.Panic(err)
   }

   return &Client{
      bot: bot,
   }
}

func (c *Client) SendMessage(text string, chatId int64) error {
   msg := tgbotapi.NewMessage(chatId, text)
   msg.ParseMode = "Markdown"
   _, err := c.bot.Send(msg)
   return err
}

func main() {
   c := New("Your bot API")
   chatId := 0
   err := c.SendMessage("*Your text in markdown*", int64(22010381))
   fmt.Println(err)
}

Наш клиент можно дополнить дополнительными методами такими как отправка медиафайлов, открытие канала на чтение новых сообщений и многого другого.

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *