实时推送Hive区块链信息到Telegram客户端(3)

在前面两篇文章(第一篇, 第二篇)中讲到了如何读取Hive区块链信息,回溯N个区块,如何在区块信息中过滤信息,并根据自己定义的规则生成待发送的信息。下面介绍一下如何配置Python Telegram bot并发送过滤后的信息给Telegram客户端。

image.png

首先需要安装telegram-send这个包:

pip3 install telegram-send

接下来需要配置一个bot账号,运行:

telegram-send --configure

其运行结果如下图所示,提示你访问BotFather页面:https://telegram.me/BotFather 并创建一个机器人(bot),在后续操作中得到token后需要粘贴过来。

image.png

打开BotFather页面。如果你还没有Telegram账号,需要先创建一个。

image.png

这里我通过网页方式访问Telegram。

依次输入以下命令来创建一个你自己的bot:

/newbot
你的bot名字
你的bot用户名

接下来你就会获得一个token:

image.png

返回Linux命令行界面,粘贴你刚获取的token。

image.png

打开你的bot页面,我这里就是:https://telegram.me/aafeng_bot

粘贴刚才命令行中获取的密码,bot就会提示已经配置成功;

image.png

测试一下,在命令行中运行:

telegram-send "Hello, telegram"

可以成功收到信息:

image.png

发送图片:

telegram-send --image test.png

发送文件:

telegram-send --file test.txt

在Python程序中发送Telegram消息也很简单,只需要下面两行代码:

import telegram_send
telegram_send.send(messages="test message")

把telegram部分和前面程序结合起来:

telegram_messages = []
while i<= number_of_blocks_to_check:
  for transaction in cb["transactions"]:
    for operation in transaction["operations"]:
      if operation[0] == "vote":
        message = get_vote_message(vote_rules, operation[1])
        if message is not None:
          telegram_messages.append(message)
  previousid = int(cb["previous"][:8], base=16)
  cb = b.hive.get_block(previousid)
  i = i+1

if len(telegram_messages)>0:
  telegram_send.send(messages=telegram_messages)

然后把第一篇,第二篇,以及这篇文章中提到的整合到一起,就可以检测区块链,把感兴趣的内容推送到你Telegram客户端了。比如说,收到如下的Telegram消息推送:

image.png