Telegram Bot开发

平时遇到的技术/非技术问题,除了博客总结外,我经常会写到GitHub repo的issue里,目前主要是alanhg/others-notealanhg/coding-note两个repo。很多时候想去搜下以前记的这些问题,发现这种跨repo搜索效率很低,于是想到Telegram Bot来解决issue检索问题。按照这个需求,简单查了下,发现网上并没有,于是自己动手实现了下。

当前效果

通过repoadd命令添加目标仓库,之后就可以输入任意关键词进行多repo issue检索了。效果如下

https://static.1991421.cn/2022/2022-05-04-114501.gif

使用地址:GitHub Issue Bot

bot开发

针对bot开发也踩了些坑,这里总结下

  1. bot创建联系@BotFather机器人,一番交互操作下即可

    • bot名称/头像,命令列表等,均是在该机器人下操作设置

    • 注意保存好bot_token,唯一决定哪个bot,及收发消息

    • 针对bot如果需要创建命令列表,也是联系@BotFather,选择目标bot编辑,其中就有编辑命令。命令编辑这里有个细节点

      • 命令不要有中线

      • 命令开始不要有/,这个是具体命令触发时需要的固定前缀,命令本身不需要再手动添加

        https://static.1991421.cn/2022/2022-05-04-115842.jpeg

      • 无法增量添加命令,必须一次输入完整命令集

  2. bot开发有很多现成的类库辅助起步

  3. bot发送消息支持markdown/html几种格式,这样很方便解决消息排版问题

  4. bot发送消息,比如提示用户搜索中,之后搜索结果有了,想更新该消息为结果列表,使用bot.editMessageText,参数中明确message_id及chat_id即可

  5. bot有时候想关注用户基于某条消息的回复,使用bot.onReplyToMessage

  6. bot服务部署需要在外网环境下,测试阶段也需要解决代理问题

写在最后

有了这个bot,以后只需要输入关键词检索是否有类似issue了。

相关文档