Skip to content

Commit 55f58bf

Browse files
committed
Update README.
1 parent 2448930 commit 55f58bf

File tree

1 file changed

+17
-85
lines changed

1 file changed

+17
-85
lines changed

README.md

Lines changed: 17 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33
[![Go Reference](https://pkg.go.dev/badge/github.com/go-telegram-bot-api/telegram-bot-api/v5.svg)](https://pkg.go.dev/github.com/go-telegram-bot-api/telegram-bot-api/v5)
44
[![Test](https://github.com/go-telegram-bot-api/telegram-bot-api/actions/workflows/test.yml/badge.svg)](https://github.com/go-telegram-bot-api/telegram-bot-api/actions/workflows/test.yml)
55

6-
All methods are fairly self-explanatory, and reading the [godoc](http://godoc.org/github.com/go-telegram-bot-api/telegram-bot-api) page should
6+
All methods are fairly self-explanatory, and reading the [godoc](https://pkg.go.dev/github.com/go-telegram-bot-api/telegram-bot-api/v5) page should
77
explain everything. If something isn't clear, open an issue or submit
88
a pull request.
99

10+
There are more tutorials and high-level information on the website, [go-telegram-bot-api.dev](https://go-telegram-bot-api.dev).
11+
1012
The scope of this project is just to provide a wrapper around the API
1113
without any additional features. There are other projects for creating
1214
something with plugins and command handlers without having to design
@@ -45,28 +47,21 @@ func main() {
4547
u := tgbotapi.NewUpdate(0)
4648
u.Timeout = 60
4749

48-
updates, err := bot.GetUpdatesChan(u)
50+
updates := bot.GetUpdatesChan(u)
4951

5052
for update := range updates {
51-
if update.Message == nil { // ignore any non-Message Updates
52-
continue
53-
}
53+
if update.Message != nil { // If we got a message
54+
log.Printf("[%s] %s", update.Message.From.UserName, update.Message.Text)
5455

55-
log.Printf("[%s] %s", update.Message.From.UserName, update.Message.Text)
56+
msg := tgbotapi.NewMessage(update.Message.Chat.ID, update.Message.Text)
57+
msg.ReplyToMessageID = update.Message.MessageID
5658

57-
msg := tgbotapi.NewMessage(update.Message.Chat.ID, update.Message.Text)
58-
msg.ReplyToMessageID = update.Message.MessageID
59-
60-
bot.Send(msg)
59+
bot.Send(msg)
60+
}
6161
}
6262
}
6363
```
6464

65-
There are more examples on the [site](https://go-telegram-bot-api.dev/)
66-
with detailed information on how to do many kinds of things.
67-
It's a great place to get started on using keyboards, commands, or other
68-
kinds of reply markup.
69-
7065
If you need to use webhooks (if you wish to run on Google App Engine),
7166
you may use a slightly different method.
7267

@@ -77,7 +72,7 @@ import (
7772
"log"
7873
"net/http"
7974

80-
"github.com/go-telegram-bot-api/telegram-bot-api"
75+
"github.com/go-telegram-bot-api/telegram-bot-api/v5"
8176
)
8277

8378
func main() {
@@ -90,17 +85,22 @@ func main() {
9085

9186
log.Printf("Authorized on account %s", bot.Self.UserName)
9287

93-
_, err = bot.SetWebhook(tgbotapi.NewWebhookWithCert("https://www.google.com:8443/"+bot.Token, "cert.pem"))
88+
wh, _ := tgbotapi.NewWebhookWithCert("https://www.google.com:8443/"+bot.Token, "cert.pem")
89+
90+
_, err = bot.SetWebhook(wh)
9491
if err != nil {
9592
log.Fatal(err)
9693
}
94+
9795
info, err := bot.GetWebhookInfo()
9896
if err != nil {
9997
log.Fatal(err)
10098
}
99+
101100
if info.LastErrorDate != 0 {
102101
log.Printf("Telegram callback failed: %s", info.LastErrorMessage)
103102
}
103+
104104
updates := bot.ListenForWebhook("/" + bot.Token)
105105
go http.ListenAndServeTLS("0.0.0.0:8443", "cert.pem", "key.pem", nil)
106106

@@ -110,74 +110,6 @@ func main() {
110110
}
111111
```
112112

113-
If you need to publish your bot on AWS Lambda(or something like it) and AWS API Gateway,
114-
you can use such example:
115-
116-
In this code used AWS Lambda Go net/http server adapter [algnhsa](https://github.com/akrylysov/algnhsa)
117-
118-
```go
119-
package main
120-
121-
import (
122-
"github.com/akrylysov/algnhsa"
123-
"github.com/go-telegram-bot-api/telegram-bot-api"
124-
"log"
125-
"net/http"
126-
)
127-
128-
func answer(w http.ResponseWriter, r *http.Request) {
129-
bot, err := tgbotapi.NewBotAPI("MyAwesomeBotToken")
130-
if err != nil {
131-
log.Fatal(err)
132-
}
133-
134-
bot.Debug = true
135-
updates := bot.ListenForWebhookRespReqFormat(w, r)
136-
for update := range updates {
137-
if update.Message == nil {
138-
continue
139-
}
140-
log.Printf("[%s] %s", update.Message.From.UserName, update.Message.Text)
141-
142-
msg := tgbotapi.NewMessage(update.Message.Chat.ID, update.Message.Text)
143-
msg.ReplyToMessageID = update.Message.MessageID
144-
_, err := bot.Send(msg)
145-
if err != nil {
146-
log.Printf("Error send message: %s | Error: %s", msg.Text, err.Error())
147-
}
148-
}
149-
}
150-
151-
func setWebhook(_ http.ResponseWriter, _ *http.Request) {
152-
bot, err := tgbotapi.NewBotAPI("MyAwesomeBotToken")
153-
if err != nil {
154-
log.Fatal(err)
155-
}
156-
157-
bot.Debug = true
158-
159-
log.Printf("Authorized on account %s", bot.Self.UserName)
160-
161-
_, err = bot.SetWebhook(tgbotapi.NewWebhook("https://your_api_gateway_address.com/"+bot.Token))
162-
if err != nil {
163-
log.Fatal(err)
164-
}
165-
info, err := bot.GetWebhookInfo()
166-
if err != nil {
167-
log.Fatal(err)
168-
}
169-
if info.LastErrorDate != 0 {
170-
log.Printf("Telegram callback failed: %s", info.LastErrorMessage)
171-
}
172-
}
173-
174-
func main() {
175-
http.HandleFunc("/set_webhook", setWebhook)
176-
http.HandleFunc("/MyAwesomeBotToken", answer)
177-
algnhsa.ListenAndServe(http.DefaultServeMux, nil)
178-
}
179-
```
180-
181113
If you need, you may generate a self-signed certificate, as this requires
182114
HTTPS / TLS. The above example tells Telegram that this is your
183115
certificate and that it should be trusted, even though it is not

0 commit comments

Comments
 (0)