• 吃人一口,還人一斗 我思故我在

    字面上意思是說,受別人一點幫助,就要思考如何回報他更多。

    同義的:受人點滴,湧泉以報

    我覺得更值得更深入思考的是,

    當你輕易地要求別人的幫助時,你就得有心理準備,要返還十倍或更多。

    所以,當自己能做到,不輕易要求別人的幫忙。

    (說到這裡,小伙伴會覺得跟我以前說的”情感投入報酬”不一樣,情境不同暫不展開)

    這是台灣的俗語,用台語發音更有味道。

  • 瘋狂宇宙 我思故我在

    這個宇宙太瘋狂,大海掀翻了小池塘。

  • 區塊鏈是工具,要合理的使用;而非商品炒作。我思故我在

  • 賀賀郎,哇嗄哩供喂 我思故我在

    意思就是說,我是一個好好的、正常的人,我幹嘛跟你講話。

    一般用於朋友間小小辨論時,無法說服對方而使用。

    請不要企圖說服價值觀不在同個方向上的人或朋友。

  • Ethereum 塞車體驗 我思故我在
    下午四點,第一次體驗到 Eethereum 的塞車,一個 Uniswap 的交易等了一個鐘頭

    約1600 左右的交易,到 1702 收到通知完成

    不是說好的幾秒鐘,幾分鐘哦。造成這個情況的這是 TPS 限制嗎?還是真的有大量垃圾訊息或攻擊導致的?

  • 中心思想 我思故我在

    行為會改變、技術會改變,但中心思想不會變
    如同你會隨著環境而適應,但你的價值觀沒那麼容易改變

    中心思想、價值觀要改變,需要非常深刻的思考及體會,一般人在成長階段接受了某種價值觀,就不容易再改變了。

  • 現在想想,還好選了 ethereum 入門 我思故我在
    當時本來是想跟 Bruce 在公司的決定一樣,從 Fabric 開始。最近沒聯絡不知道發展得如何?

    還好選了 ethereum 入門

  • 成大事者不拘小節 魔鬼藏在細節裡 我思故我在

    兩句話看似相互矛盾,但其實使用的場景是不同的
    年輕人,把這兩句話串在一起,就定位成幹話

    真的這淺薄嗎?

  • 想像力比知識更重要?我思故我在

    你的問題在於書讀得太少,想得太多。

    如果是可比較的,那請您思考:想像力固然重要,是不是應該讓你的知識追上你的想像力?

  • 學士碩士博士的不同 我思故我在
    學士 學習知識 判斷問題(價值)
    碩士 運用知識 解決問題
    博士 創造知識 發現問題

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

大叔的python之路 andy 1年前 (2019-07-10) 1515次浏览 已收录 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-机器人跑起来
喜欢 (0)
[320208045@qq.com]
分享 (0)
andy
关于作者:
中年大叔,打拼 like young students.
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

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

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