Telegram机器人5-机器人跑起来

大叔的python之路 andy 5年前 (2019-07-10) 2758次浏览 已收录 0个评论 扫描二维码

Telegram机器人5-机器人跑起来
之前的建立 telegram bot开发环境 https://www.sbooker.com/2019/07/02/189
这篇文章里面,我们已经可以运行程序,也输入电话号码跟验证码,并且提示登入完成。
最後发送一个消息给自已,然後结束程序。
今天我们主要就是说明这个程序,然後把程序稍为扩展以及把帐号的部份,改为设置化(读取)。
然後,机器人会原话回答所有私信过来的消息。

Telegram机器人5-机器人跑起来
第6行 Client 第一个参数 session_name 是 session 的名称,这个 session 的功用主要把你的登入状态保存住,
登入後这个 session 就会建立了,只要你时不时的操作保持这个 session 是最新,就不用重新登入
第二参数 api_id 跟第三个参数 api_hash 这两个参数必须到官网申请,
申请步骤请参考 https://www.sbooker.com/2019/07/02/181/
其他参数可以看官方文档 https://docs.pyrogram.org/api/client

第7行 send_message() 的功能是送出文字消息,第一个参数 chat_id 可以有几种情况,
chat_id 就是每个交谈都会有一个唯一的 id , 这里填入 id 的话就是指某个交谈
username, 如果填入的是某个 username ,就是跟某个人展开交谈。
me ,如果你只想保存消息,就填入字串 “me” 或是 “self” 就可以发消息给自已, 会在名为收藏的对话里面
phone number, 填入电话号码,如果你的联络人里有这个电话号码
其他参数,可以参考
官方文档 https://docs.pyrogram.org/api/methods#pyrogram.Client.send_message

接下来, 扩展一下
Telegram机器人5-机器人跑起来
第4-10行 就是读出 ../data/config.ini 的配置,我们用 user 这个 dict 来存放一个要登入的配置
里面包括 session api_id app_hash 三个 key ,其中的 session 我是用电话号码来命名
第15行 get_me() 是取得登入帐号自已的信息, 这个信息满值得注意,可以看到帐号的健康度, 等下再来研空这些栏位
第16行 send_message() 发送文字消息
第17行 send_location() 发送座标, 在 telegram 用户端,会有地图显示
第18行 send_sticker() 发送动态图片
第21,22行 用 on_message 来装饰 echo 这个函数, 符合两个过滤规则 Filter.text & Filter.private 代表 文字消息及私信
echo 函数则处理来自装饰器的参数 client 跟 message 在这里我们主要就是要看 message
message 是一个 pyrogram.Message类 这里面包括了相当多的 信息
其中 text 是编码为 utf-8的文字消息的内容,如果这里面包括了 markdown , 可以用 text.markdown 取用,
如果这里面包括了 html ,可以用text.html 取用
第27行 message.reply() , 是直接回复信息,不需要再指定 chat_id 及其他 send_message() 所用到的参数

至此机器人已初具雏形,但是这个机器人,运行之後因为程序已经运行结束,就会马上停止。
因此我们在 程序的最後加 app.idle()
idle()这个函数的目的是阻断程序的运行让程序不要结束,直到下个消息进入,进来的消息会触发其他已经绑定的更新。

最後, 我们回过头来看下 user 这个 pyrogram.User 类别 有哪些比较值得一提的属性,
id 这个栏位是最重要的, 用户在telegram 内的唯一标识。
firse_name:姓(名称的第一段)
last_name:名(名称的第二段)
is_self:是自已吗?
is_restricted 是不是被标记为限制功能的帐号
is_scam 是不是被标记为诈欺
status 栏位里面是在线状态

有关 user类别的说明, 官方文档 https://docs.pyrogram.org/api/types#pyrogram.User
有关 message 类别, 官方文档 https://docs.pyrogram.org/api/types#pyrogram.Message

不熟悉的前几次操作的请参考
python3 恰到好处的 configparse 教程 https://www.sbooker.com/2019/07/05/204/
Telegram机器人-telegram app 建立 https://www.sbooker.com/2019/07/02/181/
Telegram机器人-用 pycharm 建立 telegram bot 开发环境 https://www.sbooker.com/2019/07/02/189/


神隊友學長Andy , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Telegram机器人5-机器人跑起来
喜欢 (1)
[[email protected]]
分享 (0)
andy
关于作者:
中年大叔,打拼 like young students.
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址