123 lines
2.4 KiB
Go
123 lines
2.4 KiB
Go
package tgbotapi
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
"time"
|
|
)
|
|
|
|
func ExampleNewBotAPI() {
|
|
bot, err := NewBotAPI("MyAwesomeBotToken")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
bot.Debug = true
|
|
|
|
fmt.Printf("Authorized on account %s", bot.Self.UserName)
|
|
u := NewUpdate(0)
|
|
u.Timeout = 60
|
|
|
|
updates := bot.GetUpdatesChan(u)
|
|
|
|
// Optional: wait for updates and clear them if you don't want to handle
|
|
// a large backlog of old messages
|
|
time.Sleep(time.Millisecond * 500)
|
|
updates.Clear()
|
|
|
|
for update := range updates {
|
|
if update.Message == nil {
|
|
continue
|
|
}
|
|
|
|
fmt.Printf("[%s] %s", update.Message.From.UserName, update.Message.Text)
|
|
|
|
msg := NewMessage(update.Message.Chat.ID, update.Message.Text)
|
|
msg.ReplyParameters.MessageID = update.Message.MessageID
|
|
|
|
_, err := bot.Send(msg)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
}
|
|
|
|
func ExampleNewWebhook() {
|
|
bot, err := NewBotAPI("MyAwesomeBotToken")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
bot.Debug = true
|
|
|
|
fmt.Printf("Authorized on account %s", bot.Self.UserName)
|
|
|
|
wh, err := NewWebhookWithCert("https://www.google.com:8443/"+bot.Token, FilePath("cert.pem"))
|
|
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
_, err = bot.Request(wh)
|
|
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
info, err := bot.GetWebhookInfo()
|
|
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
if info.LastErrorDate != 0 {
|
|
fmt.Printf("failed to set webhook: %s", info.LastErrorMessage)
|
|
}
|
|
|
|
updates := bot.ListenForWebhook("/" + bot.Token)
|
|
go http.ListenAndServeTLS("0.0.0.0:8443", "cert.pem", "key.pem", nil)
|
|
|
|
for update := range updates {
|
|
fmt.Printf("%+v\n", update)
|
|
}
|
|
}
|
|
|
|
func ExampleWebhookHandler() {
|
|
bot, err := NewBotAPI("MyAwesomeBotToken")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
bot.Debug = true
|
|
|
|
fmt.Printf("Authorized on account %s", bot.Self.UserName)
|
|
|
|
wh, err := NewWebhookWithCert("https://www.google.com:8443/"+bot.Token, FilePath("cert.pem"))
|
|
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
_, err = bot.Request(wh)
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
info, err := bot.GetWebhookInfo()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
if info.LastErrorDate != 0 {
|
|
fmt.Printf("[Telegram callback failed]%s", info.LastErrorMessage)
|
|
}
|
|
|
|
http.HandleFunc("/"+bot.Token, func(w http.ResponseWriter, r *http.Request) {
|
|
update, err := bot.HandleUpdate(r)
|
|
if err != nil {
|
|
fmt.Printf("%+v\n", err.Error())
|
|
} else {
|
|
fmt.Printf("%+v\n", *update)
|
|
}
|
|
})
|
|
|
|
go http.ListenAndServeTLS("0.0.0.0:8443", "./tests/cert.pem", "./tests/key.pem", nil)
|
|
}
|