Merge pull request #270 from Gropher/master
Added HandleUpdate method for serverless deploy. Fixes #260bot-api-6.1
commit
8717c40e7c
19
bot.go
19
bot.go
|
@ -552,18 +552,23 @@ func (bot *BotAPI) ListenForWebhook(pattern string) UpdatesChannel {
|
||||||
ch := make(chan Update, bot.Buffer)
|
ch := make(chan Update, bot.Buffer)
|
||||||
|
|
||||||
http.HandleFunc(pattern, func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc(pattern, func(w http.ResponseWriter, r *http.Request) {
|
||||||
bytes, _ := ioutil.ReadAll(r.Body)
|
ch <- bot.HandleUpdate(w, r)
|
||||||
r.Body.Close()
|
|
||||||
|
|
||||||
var update Update
|
|
||||||
json.Unmarshal(bytes, &update)
|
|
||||||
|
|
||||||
ch <- update
|
|
||||||
})
|
})
|
||||||
|
|
||||||
return ch
|
return ch
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// HandleUpdate parses and returns update received via webhook
|
||||||
|
func (bot *BotAPI) HandleUpdate(res http.ResponseWriter, req *http.Request) Update {
|
||||||
|
bytes, _ := ioutil.ReadAll(req.Body)
|
||||||
|
req.Body.Close()
|
||||||
|
|
||||||
|
var update Update
|
||||||
|
json.Unmarshal(bytes, &update)
|
||||||
|
|
||||||
|
return update
|
||||||
|
}
|
||||||
|
|
||||||
// AnswerInlineQuery sends a response to an inline query.
|
// AnswerInlineQuery sends a response to an inline query.
|
||||||
//
|
//
|
||||||
// Note that you must respond to an inline query within 30 seconds.
|
// Note that you must respond to an inline query within 30 seconds.
|
||||||
|
|
29
bot_test.go
29
bot_test.go
|
@ -593,6 +593,35 @@ func ExampleNewWebhook() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ExampleWebhookHandler() {
|
||||||
|
bot, err := tgbotapi.NewBotAPI("MyAwesomeBotToken")
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
bot.Debug = true
|
||||||
|
|
||||||
|
log.Printf("Authorized on account %s", bot.Self.UserName)
|
||||||
|
|
||||||
|
_, err = bot.SetWebhook(tgbotapi.NewWebhookWithCert("https://www.google.com:8443/"+bot.Token, "cert.pem"))
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
info, err := bot.GetWebhookInfo()
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
|
}
|
||||||
|
if info.LastErrorDate != 0 {
|
||||||
|
log.Printf("[Telegram callback failed]%s", info.LastErrorMessage)
|
||||||
|
}
|
||||||
|
|
||||||
|
http.HandleFunc("/" + bot.Token, func(w http.ResponseWriter, r *http.Request) {
|
||||||
|
log.Printf("%+v\n", bot.HandleUpdate(w, r))
|
||||||
|
})
|
||||||
|
|
||||||
|
go http.ListenAndServeTLS("0.0.0.0:8443", "cert.pem", "key.pem", nil)
|
||||||
|
}
|
||||||
|
|
||||||
func ExampleAnswerInlineQuery() {
|
func ExampleAnswerInlineQuery() {
|
||||||
bot, err := tgbotapi.NewBotAPI("MyAwesomeBotToken") // create new bot
|
bot, err := tgbotapi.NewBotAPI("MyAwesomeBotToken") // create new bot
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
Loading…
Reference in New Issue