GoTGProto是一个基于gotd/td库的Go语言辅助包,专为Telegram MTProto协议设计。它旨在简化Telegram客户端的开发过程,让开发者更容易构建机器人(bots)和用户机器人(userbots)。这个项目目前处于beta阶段,适合那些希望在Golang中快速接入Telegram功能的开发者。通过内置的会话管理、peer存储和自定义辅助函数,它大大降低了使用原始API的复杂性。如果你正在寻找一个高效的Telegram客户端解决方案,GoTGProto值得一试。
关键特性
安装与入门
安装非常简单,只需运行以下命令:
textgo get github.com/celestix/gotgproto
入门时,需要从my.telegram.org获取AppID和ApiHash。以下是一个基本用户授权示例:
gopackage main
import (
"log"
"github.com/celestix/gotgproto"
"github.com/celestix/gotgproto/sessionMaker"
"github.com/glebarez/sqlite"
)
func main() {
client, err := gotgproto.NewClient(
123456, // AppID
"API_HASH_HERE", // ApiHash
gotgproto.ClientTypePhone("PHONE_NUMBER_HERE"),
&gotgproto.ClientOpts{
Session: sessionMaker.SqlSession(sqlite.Open("echobot")),
},
)
if err != nil {
log.Fatalln("failed to start client:", err)
}
client.Idle()
}
更多示例可在项目的examples目录中找到。
基本操作示例
GoTGProto提供了直观的API调用。以下是发送消息的简单示例:
goctx.SendMessage(chatId, &tg.MessagesSendMessageRequest{
Message: "Hello, World!",
})
上传并发送媒体(如照片):
gof, err := uploader.NewUploader(ctx.Raw).FromPath(ctx, "test.jpg")
if err != nil {
panic(err)
}
ctx.SendMedia(chatId, &tg.MessagesSendMediaRequest{
Message: "This is your caption",
Media: &tg.InputMediaUploadedPhoto{
File: f,
},
})
对于音频或其他文档类型,可以调整MimeType和属性。
GoTGProto的优势在于其易用性和自动化功能,相比原始gotd/td库,能显著缩短开发时间。如果你对Telegram开发感兴趣,可以访问GitHub仓库(https://github.com/celestix/gotgproto)查看完整文档,或加入支持群组获取帮助。这个项目开源于GPLv3许可,欢迎贡献代码!