Alle Methoden sind ziemlich selbsterklärend, und das Lesen der Godoc-Seite sollte alles erklären. Wenn etwas nicht klar ist, öffnen Sie ein Problem oder senden Sie eine Pull -Anfrage.
Auf der Website finden Sie mehr Tutorials und hochrangige Informationen, Go-Telegram-Bot-api.dev.
Der Umfang dieses Projekts besteht darin, ohne zusätzliche Funktionen einen Wrapper um die API zu liefern. Es gibt andere Projekte, um etwas mit Plugins und Befehlshandlern zu erstellen, ohne alles selbst entwerfen zu müssen.
Treten Sie der Entwicklungsgruppe bei, wenn Sie Fragen stellen oder die Entwicklung diskutieren möchten.
Stellen Sie zunächst sicher, dass die Bibliothek durch Ausführen go get -u github.com/go-telegram-bot-api/telegram-bot-api/v5 installiert und aktuell ist.
Dies ist ein sehr einfacher Bot, der nur alle erhaltenen Updates anzeigt und ihn dann auf diesen Chat antwortet.
package main
import (
"log"
tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5"
)
func main () {
bot , err := tgbotapi . NewBotAPI ( "MyAwesomeBotToken" )
if err != nil {
log . Panic ( err )
}
bot . Debug = true
log . Printf ( "Authorized on account %s" , bot . Self . UserName )
u := tgbotapi . NewUpdate ( 0 )
u . Timeout = 60
updates := bot . GetUpdatesChan ( u )
for update := range updates {
if update . Message != nil { // If we got a message
log . Printf ( "[%s] %s" , update . Message . From . UserName , update . Message . Text )
msg := tgbotapi . NewMessage ( update . Message . Chat . ID , update . Message . Text )
msg . ReplyToMessageID = update . Message . MessageID
bot . Send ( msg )
}
}
}Wenn Sie Webhooks verwenden müssen (wenn Sie in Google App Engine ausführen möchten), können Sie eine etwas andere Methode verwenden.
package main
import (
"log"
"net/http"
"github.com/go-telegram-bot-api/telegram-bot-api/v5"
)
func main () {
bot , err := tgbotapi . NewBotAPI ( "MyAwesomeBotToken" )
if err != nil {
log . Fatal ( err )
}
bot . Debug = true
log . Printf ( "Authorized on account %s" , bot . Self . UserName )
wh , _ := tgbotapi . NewWebhookWithCert ( "https://www.example.com:8443/" + bot . Token , "cert.pem" )
_ , err = bot . Request ( wh )
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 )
}
updates := bot . ListenForWebhook ( "/" + bot . Token )
go http . ListenAndServeTLS ( "0.0.0.0:8443" , "cert.pem" , "key.pem" , nil )
for update := range updates {
log . Printf ( "%+v n " , update )
}
}Wenn Sie benötigen, können Sie ein selbstsigniertes Zertifikat erstellen, da dies HTTPS / TLS erfordert. Das obige Beispiel teilt Telegram mit, dass dies Ihr Zertifikat ist und dass es vertrauen sollte, obwohl es nicht ordnungsgemäß signiert ist.
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 3560 -subj "//O=OrgCN=Test" -nodes
Jetzt, da wir verschlüsseln können, möchten Sie dort Ihr kostenloses TLS -Zertifikat generieren.