При помощи библиотеки go-telegram-bot-api достаточно легко написать свою программу на Go для отправки сообщений в Telegram. Библиотека имеет множество реализованных методов для работы c Telegram API — отправка сообщений, загрузка изображений и медиафайлов, ответ на сообщения в группах и отслеживание новых событий в каналах.
Реализуем простую программу для отправки сообщений самому себе.
Для начала нужно будет создать нового бота и получить API Key. Как это сделать в подробностях мы опустим. Далее необходимо получить ID чата — кому бот будет отсылать сообщение. Процесс также тривиальный, достаточно отправить сообщение боту и реализовать чтение ботом полученного сообщения. В итоге мы получим желанный chat id.
Для отправки сообщения у нас имеется вся информация, создадим структуру Client и добавим ей метод SendMessage:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
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) } |
Наш клиент можно дополнить дополнительными методами такими как отправка медиафайлов, открытие канала на чтение новых сообщений и многого другого.