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