Semua metode cukup jelas, dan membaca halaman Godoc harus menjelaskan semuanya. Jika ada sesuatu yang tidak jelas, buka masalah atau kirimkan permintaan tarik.
Ada lebih banyak tutorial dan informasi tingkat tinggi di situs web, Go-Telegram-Bot-API.dev.
Ruang lingkup proyek ini hanya untuk menyediakan pembungkus di sekitar API tanpa fitur tambahan. Ada proyek lain untuk membuat sesuatu dengan plugin dan penangan perintah tanpa harus merancang semua itu sendiri.
Bergabunglah dengan grup pengembangan jika Anda ingin mengajukan pertanyaan atau mendiskusikan pengembangan.
Pertama, pastikan perpustakaan diinstal dan up to date dengan menjalankan go get -u github.com/go-telegram-bot-api/telegram-bot-api/v5 .
Ini adalah bot yang sangat sederhana yang hanya menampilkan pembaruan apa pun, lalu menjawabnya ke obrolan itu.
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 )
}
}
}Jika Anda perlu menggunakan webhooks (jika Anda ingin menjalankan di Google App Engine), Anda dapat menggunakan metode yang sedikit berbeda.
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 )
}
}Jika perlu, Anda dapat menghasilkan sertifikat yang ditandatangani sendiri, karena ini membutuhkan HTTPS / TLS. Contoh di atas memberi tahu Telegram bahwa ini adalah sertifikat Anda dan bahwa itu harus dipercaya, meskipun tidak ditandatangani dengan benar.
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 3560 -subj "//O=OrgCN=Test" -nodes
Sekarang bahwa Enkripsi Mari tersedia, Anda mungkin ingin menghasilkan sertifikat TLS gratis di sana.