首页 > 解决方案 > Micropython 电报机器人仅轮询聊天记录中的第一条消息

问题描述

我正在使用这个库在带有 micropython 的 esp32 上运行电报机器人。它用来轮询新消息的函数是这样的:

def read_messages(self):
    result = []
    self.query_updates = {
        'offset': self.message_offset,
        'limit': 1,
        'timeout': 30,
        'allowed_updates': ['message']}

    try:
        update_messages = urequests.post(self.url + '/getUpdates', json=self.query_updates).json() 
        if 'result' in update_messages:
            for item in update_messages['result']:
                result.append(item)
        print(len(result))
        return result
    except (ValueError):
        return None
    except (OSError):
        print("OSError: request timed out")
        return None

默认self.message_offset值为 0,但这只会返回我发送给机器人的第一条消息。我应该使用什么值来仅获取未读消息?

编辑:应该提到我正在使用该listen()功能,其中包括推进 id 计数器的代码

标签: pythontelegramtelegram-botesp32micropython

解决方案


推荐阅读