جميع الأساليب تفسد إلى حد ما ، ويجب أن تشرح قراءة صفحة Godoc كل شيء. إذا لم يكن هناك شيء واضح ، فتح مشكلة أو إرسال طلب سحب.
هناك المزيد من البرامج التعليمية والمعلومات عالية المستوى على الموقع الإلكتروني ، Go-Telegram-Bot-Api.dev.
نطاق هذا المشروع هو مجرد توفير غلاف حول واجهة برمجة التطبيقات دون أي ميزات إضافية. هناك مشاريع أخرى لإنشاء شيء مع الإضافات ومعالجات الأوامر دون الحاجة إلى تصميم كل ذلك بنفسك.
انضم إلى مجموعة التطوير إذا كنت ترغب في طرح الأسئلة أو مناقشة التطوير.
أولاً ، تأكد من تثبيت المكتبة وحتى الآن عن طريق تشغيل go get -u github.com/go-telegram-bot-api/telegram-bot-api/v5 .
هذا روبوت بسيط للغاية يعرض أي تحديثات حصلت عليه فقط ، ثم يردها على تلك الدردشة.
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 )
}
}
}إذا كنت بحاجة إلى استخدام WebHooks (إذا كنت ترغب في تشغيل محرك تطبيق Google) ، فيمكنك استخدام طريقة مختلفة قليلاً.
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 )
}
}إذا كنت بحاجة ، فيمكنك إنشاء شهادة موقعة ذاتيًا ، لأن هذا يتطلب HTTPS / TLS. يخبر المثال أعلاه Telegram أن هذه هي شهادتك وأنه يجب الوثوق به ، على الرغم من أنه لم يتم توقيعه بشكل صحيح.
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 3560 -subj "//O=OrgCN=Test" -nodes
الآن وبعد أن تتوفر Encrypt ، قد ترغب في إنشاء شهادة TLS المجانية هناك.