Telegram bot 入门实践

什么是 Bot Bot 的概念在官网的介绍稍微有点繁琐和复杂,详细可以了解官网介绍, 简单来说,bot 就是你在 telegram 中的一个特殊账号,你申请了 bot,这个 bot 就是你的代理人,你发号施令到 bot,bot 会响应你的指令,仅此而已。 申请 bot 需要找 BotFather(名字起的很形象),具体过程官网说的比较详细,此处不赘言。但是需要强调的一点是,bot 仅仅是你的代理人而已,真正执行你指令的是你自己部署的脚本,如果你不部署自己的脚本,在 bot 中输入指令,是没有任何响应的。 你、bot和你部署的脚本关系如下: 脚本 上面说过了,bot 只是你在 telegram 的一个代理,真正干活的是你的脚本。既然自己写脚本,就会存在两个问题:接受指令、做出响应。 接受指令 对于如何让脚本接受指令,官方提供了两种思路:推模式 、拉模式。 拉模式 这种模式,官方不太推荐。简单而言,就是自己部署一个脚本,不断执行 get 请求,获取自己 bot 的更新信息,就好比一个仆人一直在问你: 有没有需要我做的? 有没有需要我做的? 有没有需要我做的? 询问的方式也比较简单: curl -X GET https://api.telegram.org/bot[token]/getUpdates 这里的 token,就是上面申请 bot 完毕后,得到的 token, 出于脱敏,我使用 [token] 代替,下同。这种方法比较笨拙,轮询的频次太高和太低都不行,而且你在 bot 中发布一条指令后,可能并不能够马上得到执行,会有延迟。 这种方式的好处是:可以让 bot 启在本地,不需要部署到服务器上,因为 telegram 不知道你的存在,他也不需要知道你的存在。 推模式 这种方式是官方比较推荐的一种方式,这种类似事件驱动的原理。只有有任务了,才会通知脚本去做。但前提是:在向 bot 发号施令前,需要在 bot 中注册一个 callback url。 bot 在接受你的指令后,会调用此 url,通知你的脚本,让他执行任务。 注册方式也比较简单:...