Toutes les méthodes sont assez explicites et la lecture de la page Godoc devrait tout expliquer. Si quelque chose n'est pas clair, ouvrez un problème ou soumettez une demande de traction.
Il y a plus de tutoriels et d'informations de haut niveau sur le site Web, Go-Telegram-Bot-api.dev.
La portée de ce projet est simplement de fournir un emballage autour de l'API sans aucune fonctionnalité supplémentaire. Il existe d'autres projets pour créer quelque chose avec des plugins et des gestionnaires de commandes sans avoir à concevoir tout cela vous-même.
Rejoignez le groupe de développement si vous souhaitez poser des questions ou discuter du développement.
Tout d'abord, assurez-vous que la bibliothèque est installée et à jour en exécutant go get -u github.com/go-telegram-bot-api/telegram-bot-api/v5 .
Il s'agit d'un bot très simple qui affiche simplement toutes les mises à jour GOTten, puis la répond à ce chat.
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 )
}
}
}Si vous avez besoin d'utiliser WebHooks (si vous souhaitez s'exécuter sur Google App Engine), vous pouvez utiliser une méthode légèrement différente.
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 )
}
}Si vous en avez besoin, vous pouvez générer un certificat auto-signé, car cela nécessite HTTPS / TLS. L'exemple ci-dessus indique à Telegram qu'il s'agit de votre certificat et qu'il faut faire confiance, même s'il n'est pas correctement signé.
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 3560 -subj "//O=OrgCN=Test" -nodes
Maintenant que Let's Encrypt est disponible, vous souhaiterez peut-être y générer votre certificat TLS gratuit.