telegram-bot-api, Telegram API的Golang绑定

分享于 

4分钟阅读

GitHub

  繁體 雙語
A simple Golang bot for the Telegram Bot API
  • 源代码名称:telegram-bot-api
  • 源代码网址:http://www.github.com/go-telegram-bot-api/telegram-bot-api
  • telegram-bot-api源代码文档
  • telegram-bot-api源代码下载
  • Git URL:
    git://www.github.com/go-telegram-bot-api/telegram-bot-api.git
    Git Clone代码到本地:
    git clone http://www.github.com/go-telegram-bot-api/telegram-bot-api
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/go-telegram-bot-api/telegram-bot-api
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    API的Golang绑定

    GoDocTravis

    已经添加所有方法,并且所有功能都应该可用。 如果你想要一个尚未添加的功能,或者有什么问题,打开一个问题,我会看到什么。

    所有方法都是自解释的,阅读godoc页面应该能解释一切。 如果不清楚,请打开问题或者提交请求请求。

    这个项目的作用是在API周围提供一个包装器,而不需要任何额外的特性。 还有其他一些项目可以使用插件和命令处理程序来创建东西,而不用自己设计。

    用户 github.com/go-telegram-bot-api/telegram-bot-api 对于最新版本,或者使用 gopkg.in/telegram-bot-api.v4 进行稳定构建。

    如果你想询问问题或者讨论开发,请加入开发组。

    示例

    这是一个非常简单的机器人,只显示任何得到的更新,然后回复到聊天中。

    package mainimport (
     "log""gopkg.in/telegram-bot-api.v4")funcmain() {
     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 = 60updates, err:= bot.GetUpdatesChan(u)
     forupdate:=range updates {
     if update.Message == nil {
     continue }
     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 App Engine 上运行),可以使用稍微不同的方法。

    package mainimport (
     "gopkg.in/telegram-bot-api.v4""log""net/http")funcmain() {
     bot, err:= tgbotapi.NewBotAPI("MyAwesomeBotToken")
     if err!= nil {
     log.Fatal(err)
     }
     bot.Debug = true log.Printf("Authorized on account %s", bot.Self.UserName)
     _, err = bot.SetWebhook(tgbotapi.NewWebhookWithCert("https://www.google.com:8443/"+bot.Token, "cert.pem"))
     if err!= nil {
     log.Fatal(err)
     }
     updates:= bot.ListenForWebhook("/" + bot.Token)
     go http.ListenAndServeTLS("0.0.0.0:8443", "cert.pem", "key.pem", nil)
     forupdate:=range updates {
     log.Printf("%+vn", update)
     }
    }

    如果需要,你可以生成自签名的certficate,因为这需要 https/tls。 上面的示例告诉电报这是你的证书,并且它应该被信任,即使它没有正确签名。

    
    openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 3560 -subj"//O=OrgCN=Test" -nodes
    
    
    
    

    现在让我们加密了,已经进入 public 测试版,你可能希望在那里生成你的免费TLS证书。


    API  BIN  bindings  golang  bot  TEL  
    相关文章