package telegram import ( "context" "errors" "github.com/carlmjohnson/requests" ) const ( endpoint = "https://api.telegram.org" ) type ( TelegramClient struct { endpoint string chatID string } MessageInput struct { ChatID string `json:"chat_id"` Text string `json:"text"` } TgResponse struct { Ok bool `json:"ok"` } ) func New(apiKey string) *TelegramClient { return &TelegramClient{ endpoint: endpoint + "/bot" + apiKey + "/", } } func (tg *TelegramClient) SendMessage(ctx context.Context, payload MessageInput) (bool, error) { var resp TgResponse if err := requests. URL(tg.endpoint + "sendMessage"). BodyJSON(&payload). ToJSON(&resp). Fetch(ctx); err != nil { return false, err } if !resp.Ok { return false, errors.New("telegram error") } return true, nil }