all repos — telegram-bot-api @ 4d3619d856ccbad98c87a5463cc64583f2f84ddd

Golang bindings for the Telegram Bot API

bot.go (view raw)

 1// Package tgbotapi has bindings for interacting with the Telegram Bot API.
 2package tgbotapi
 3
 4import "net/http"
 5
 6// BotAPI has methods for interacting with all of Telegram's Bot API endpoints.
 7type BotAPI struct {
 8	Token   string       `json:"token"`
 9	Debug   bool         `json:"debug"`
10	Self    User         `json:"-"`
11	Updates chan Update  `json:"-"`
12	Client  *http.Client `json:"-"`
13}
14
15// NewBotAPI creates a new BotAPI instance.
16// Requires a token, provided by @BotFather on Telegram
17func NewBotAPI(token string) (*BotAPI, error) {
18	return NewBotAPIWithClient(token, &http.Client{})
19}
20
21// NewBotAPIWithClient creates a new BotAPI instance passing an http.Client.
22// Requires a token, provided by @BotFather on Telegram
23func NewBotAPIWithClient(token string, client *http.Client) (*BotAPI, error) {
24	bot := &BotAPI{
25		Token:  token,
26		Client: client,
27	}
28
29	self, err := bot.GetMe()
30	if err != nil {
31		return &BotAPI{}, err
32	}
33
34	bot.Self = self
35
36	return bot, nil
37}