用Go语言版[TelegramShellBot]及的初体验-电报telegram技巧分享

telegram用什么开发语言

AD:资源代下载服务

telegram bot(复读机)

实验

用 Go 语言做了一个 telegram 的 bot . 用来简单实现对话(复读)。

得到 telegram bot token

和 BotFather 攀谈即可

中途需要设置一下名字和查找路径

go get

首先获取 api 包

go get -u github.com/go-telegram-bot-api/telegram-bot-api

code

package main import ( "log" "os" "github.com/go-telegram-bot-api/telegram-bot-api" ) func main() { bot, err := tgbotapi.NewBotAPI(os.Getenv("TELEGRAM_APITOKEN")) 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, err := bot.GetUpdatesChan(u) for update := range updates { if update.Message == nil { // ignore any non-Message Updates continue } msg := tgbotapi.NewMessage(update.Message.Chat.ID, update.Message.Text) msg.ReplyToMessageID = update.Message.MessageID if _, err := bot.Send(msg); err != nil { og.Panic(err) } } }

Run

留意 终端需要能访问 telegram 的 API

效果

作者:yhyddr

原文地点:https://segmentfault.com/a/1190000019888362

精选30+云产品,助力企业轻松上云!>>>

项目地点(Go): https://github.com/vicalloy/telegram-shell-bot-go

由于对Go不认识,因此 之前版本的 Telegram Shell Bot 接纳Python实现。在Python版公布后就开始实验使用Go重新实现,毕竟之以是要做这工具也是想借个小程序体验一下Go语言。

我对Go语言的一些见解

随着微服务的鼓起,相较以往服务的粒度可以拆分的更细。系统庞杂度更多的变化为微服务构架计划的庞杂度。服务拆分后每个详细的服务的庞杂度将降低,系统对程序语言本身的构架本领的依靠会淘汰许多。同时在服务拆分后,各个服务组件可以机动的接纳合适的技能来完成工作。

Go语言本身非常精简(简陋),假如要象Java一样搭建一个单体的巨型项目会存在肯定困难。Go的高性能,异步,加之充足简单,使Go在一些对性能要求较高,但业务庞杂度相对较低的场所会非常合适。

Go大概永久不能变的同Java一样盛行,但Go已经充足成功,值得去体验。

Go开发的相关资源

开发過逞中的实际体验

Telegram Shell Bot Go 是我第一次使用Go写工具,由于只是一个小项目体验还不算特殊深。Go语言中最英华的并发相关内容(goroutine / channel / select)并没有效到。

总的来说Go有着还不错的开发体验,但另一方便由于習慣了Python,Go又有不少让我用的不是特殊舒适的地方。有人说Go是better C,我个人还是比较承认这个看法,相比其他语言Go很像C语言。

长处

  • Python使用缩进语法保证代码的整齐。Go则直接内置代码格式化工具来逼迫保证代码格式的同等性。
  • 之前听说Go的包管理很差劲。这次使用已经有go mod的支持,用下来体验还不错。
  • GC、性能好、编译速率快等。

不太習慣的地方(不肯定是缺点)

  • 底子种类同Python相比差太多。Slice和Python里的List相对应,但功能方面差非常多。此中一个简单的删除对象的功能都需要自己实现。不清晰这是否是出于性能的思量,需要让用户明白清晰相关操作的时间庞杂度。但使用起来真的非常不方便。用了其他开发语言后,更让人吊唁Python的列表推导。
  • Go在语法层面比较简单,相对较新的观点也就异步相关的内容(这部分Go计划的不错,实际上也并不难明白),真正难的还是顺应Go的编程气势派头。Go的Telegram类库API气势派头同Python版有较大差异。我想API的气势派头差别更多的还是同语言本身气势派头差别相关的。要完全顺应Go的编程气势派头大概需要先找几个!代码写的比较好的项目先学习一下。

前言

Telegram 是一个非常开放的平台,其开放性包括美满的 Bot API,这些 API 提供的功能甚至超出了正常用户&客户端所能做到的事情。

比方本文要介绍的一个有关机器人的内联模式和包管理平台的搜索集成,可以看作是将编程语言的生态服务扩展到了 Telegram 中。

例子

我用 Elixir 语言实现了一个提供 Hex 包搜索的机器人(注:Hex 是 Elixir 官方仓库),联合 Telegram 主动补全嵌入链接的内容,效果非常的棒。

使用 Telegram 搜索 Hex 包https://www.zhihu.com/video/1109122603012296704

此机器人的官方实例是: HexBot

Github 链接: elixirchina/hexbot

内联模式

默认环境下 Telegram 的机器人帐号是没有开启这个模式的,以内联模式工作的机器人也被成为内联机器人。

内联机器人与常规机器人的差别之处在于它!可以直接吸收用户输入并赐与反馈,不需要产生任何普通消息。这种交互是及时的,非常合适需要依照重要字修正结果的搜索功能,这是普通指令消息所无法做到的。

而且,只需要 at 机器人即可,无需拉入到群组中。完成交互选择以后产生的消息最终是用户发送的。

结束语

欢迎故意学习 Elixir 编程或 Elixir 开发者来我们的群组交流: https://t.me/elixir_cn

(闲人勿扰)

本文网址:

http://www.1cm8858.com/d/2020619113944_8537_1488783044/home

Ten articles before and after

telegram的使用方法Channelstatistics精品软件分享(破解版).Analytics-电报telegram技巧分享

清末报纸业开始用电报传送新闻民国时期通电全国的代价很高-电报telegram技巧分享

伊朗封杀即时聊天软件telegram浙江电报群TG@zhejiangTG-电报telegram技巧分享

「nicegram」基于官方原始码的第三方嫌创新不力:Telegram推出新软件X-电报telegram技巧分享

158.耳机常见问题科普:有微小滋滋声-电报telegram技巧分享

0402:电报群搜索机器人项目telegram-电报telegram技巧分享

一次看懂摩斯电码的密码摩斯密码表摩尔斯电码转换-电报telegram技巧分享

韭菜防骗手册!被Telegram群诈骗怎么办?钱能追回吗-电报telegram技巧分享

用户激增!创建telegram机器人-电报telegram技巧分享

telegram代理设置(不翻墙使用电报)windows-电报telegram技巧分享