Telegram-Bot 可以实现强大的自动化功能,能实现丰富的交互和定制化选项,同时具备高度安全性和稳定性。

I might have made some mistakes, please let me know if I’ve gotten anything wrong!

先自荐一个 tg 转发机器人,避免存入 tg 收藏夹然后吃灰。

项目地址: AhFeil/extract_forward_tgbot: 存储转发给它的消息到文件中,并能推送到网页,方便查看编辑信息 (github.com)

它的最基本使用: (更多请查看 GitHub 项目首页)

把消息转存给它(只支持纯文本消息和图片附带消息那种),或者直接发消息
它会提取其中的文本和内链网址并将之存在文件里,内链网址会按照顺序放到文本后面。
发送命令 /push ,它会将上面文件里的全部内容复制到另一个方便访问的文件中,目前用的是 网页记事本,访问对应网页就能看到。
在电脑访问网页,查看并高效处理。
在 Telegram 注册机器人和配置等
注册一个机器人(Bot)
注册过程很简单,在 telegram 中向“机器人之父”发消息,即 https://t.me/BotFather 这个机器人:

打开与 @BotFather 的对话框
发送 /start (开始)
发送 /newbot
发送 Bot 的 name(名称、昵称)
指定 Bot 的 username(用户名、ID),注意这个用户名必须以 bot 结尾,而且不能更改
如果没重名,注册完成,发来的消息中有 Bot 的 token,格式是这样的: 6111111110:AAxxxxxvfly2xxxx9iGxxLa_atxxcomxuNU
保存好 token ,不要泄露
ScreenShot_2025-11-28_102711_238.jpg


获取 chat_id
先注册好机器人,点 start 后,向新注册的机器人随意发送消息,然后打开网址:

# 修改里面的 token 部分,前面的 bot 别删了

其中 "chat" 里的 "id" 就是发消息账户的 chat_id,保存。

向 Bot 添加指令
指令的本质是以 / 开头的文本,因此可以直接发送 /指令 触发

通过 BotFather 来为 Bot 设置指令,流程是,发送 /setcommands ,然后选中要修改的机器人,接着按照格式发送指令列表即可,格式如下:

start - 看看我能干什么
forward - 推送到网页
emsg - 保存里的最早的一条消息
dmsg - 删最新的一条并返回文本
shutdown - 停止运行
clear - 清空转存信息


之后点 Bot 输入框左边的 M即可看见设置的指令列表。

配置 Bot 的个性化介绍
发送 /mybots ,选择一个机器人,接着【Edit Bot】,这里面能编辑名称、头像和介绍,还有指令。

其中 About 编辑的是下面界面展示的

一些限制
不完整,仅是记录

注意: 机器人必须设置为频道管理员,否则无法发送消息

频道必须设置为公开

在频道可以通过 @name 发消息,对个人不行,只能通过 chat_id 才行

并且,机器人只能在用户向它发过消息,或将机器人加入一个群组之后,才能主动向用户发消息。机器人不能向陌生用户主动发消息。

custom keyboard & inline keyboard
Customer keyboard 和 inline keyboard 有以下几点区别:

inline keyboard 出现在输入区之上,而custom keyboard出现在键盘输入区之下;
按下inline keyboard 会返回给bot一个callback query,而按下custom keyboard只后只会给bot发送一条文本信息,本质和同为文本的command是一样的。
用浏览器直接查看(webhook)
在编写代码之前,可以先手动用 webhook 查看机器人收到的信息,有个直观的认识

Telegram 的 API 接口形式是 URL,它和我们平常使用的网址是类似的。

可以将以下的 URL 复制在浏览器的网址栏中,将 Your Token 替换为实际的 Token,然后访问:



 
# 就比如,这样


向 bot 发送一条消息之后,刷新浏览器,你会得到以下类似下面的 Message:

{'chat': {'first_name': 'Jean',
          'id': 24601,
          'last_name': 'Valjean',
          'type': 'private',
          'username': 'MonsierMadeleine'},
 'date': 17691833,
 'from': {'first_name': 'Jean',
          'id': 24601,
          'is_bot': False,
          'last_name': 'Valjean',
          'username': 'MonsierMadeleine'},
 'message_id': 7417,
 'text': 'I am warning you Javert'}


message 以 json 的形式被包装和发送,它的本质是 nested dictionary,也就是 dictionary 包了一层dictionary。


如果你在地址栏中键入如下 URL:


https://api.telegram.org/botYour Token/sendMessage?chat_id="Some Chat id"&text="Hello"
 


替换为实际的 Token 和 chat ID,编辑 text,回车后,你的Bot就会将”Hello“发送给指定用户。

形式类似地,Telegram规定了很多功能,比如 sendMessage,sendPhoto 等。

message 的 key 包括 chat(用户的名字,ID和聊天的种类),date(消息发送的日期),from(发送者的信息),message_id(指向特定的一条信息),而 text 就是用户所发送消息的文本。

在telegram中,聊天的种类分为三种,private, group 以及 channel

python-telegram-bot
选一种编程语言,和封装 API 的库,方便开发。

这里使用 Python ,库使用 python-telegram-bot ,方便快速操作官方 API,其相关网站如下:



点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部