При помощи библиотеки 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) }
Наш клиент можно дополнить дополнительными методами такими как отправка медиафайлов, открытие канала на чтение новых сообщений и многого другого.