【问题标题】:Can Telegram Bot Api used to fetch unread messages from my telegram account?Telegram Bot Api 可以用来从我的电报帐户中获取未读消息吗?
【发布时间】:2018-02-15 19:41:54
【问题描述】:

我订阅了一个以特定格式发送消息的电报机器人(我不是该机器人的所有者/管理员)。我需要做的是解析传入的消息并将解析的信息用作交易 API 的参数。

因此,我需要一种守护进程,它可以在我的笔记本电脑上运行,并不断侦听来自该机器人的任何新消息,并在收到新消息时对其进行解析。

Telegram Bot API 可以处理这个吗?换句话说,如果我创建一个机器人,它是否能够读取其他机器人发送给我的消息

【问题讨论】:

    标签: telegram telegram-bot


    【解决方案1】:

    您是否尝试搜索官方文档 API 或常见问题解答?

    https://core.telegram.org/bots/faq#why-doesn-39t-my-bot-see-messages-from-other-bots

    【讨论】:

    • 是的,我遇到了。但是这个答案(stackoverflow.com/questions/45889405/…)另有提及,所以我有点困惑。我唯一的目标是以某种方式获取我通过机器人收到的消息
    • 如果您需要以某种方式获取消息,请尝试这种丑陋的方式:使用基于 Web 浏览器的 Telegram 客户端并使用此工具解析机器人消息:phantomjs.org
    【解决方案2】:

    您可以使用 pythonpython-telegram-bot 包来实现。 当您使用以下代码在 Python 代码中创建机器人时:

    bot = telegram.Bot("Your bot's token")
    

    您可以使用bot.get_updates() 获取发送到您的机器人的新消息,并且有一个功能可以检查发送的消息是否来自机器人。您可以编写一个返回 boolean 的函数,告诉您是否是消息发送者机器人:

    def is_bot(update=dict()): #"update" is one of the messages which got returned from get_updates()
        message = update["message"].to_dict()
        return message["from"]["is_bot"]
    
    
    for update in bot.get_updates():
        print(is_bot(update))
    

    【讨论】:

      猜你喜欢
      • 2020-07-04
      • 2017-11-28
      • 2016-01-07
      • 1970-01-01
      • 2016-01-31
      • 2017-02-25
      • 2017-07-04
      • 2019-03-09
      • 1970-01-01
      相关资源
      最近更新 更多