python - 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 计数器的代码
解决方案
推荐阅读
- floris - 实例化农场后如何改变风速?
- angular - Angular Dart 路由导致没有错误的空白屏幕
- scala - Scala如何将数组中的所有项目拆分为另一个不可变数组
- compiler-errors - Eiffel:一旦函数具有通用或锚定结果。尝试创建常量
- node.js - 如何在 node.js 的 package.json 中默认设置一个脚本以静默运行(如 npm run -s scriptname)?
- c# - C# 十进制检查不能正常工作
- regex - 在Scala中给定索引后的字符串中查找正则表达式匹配
- ios - Firebase SDK 崩溃
- python-2.7 - 条件参数的特定值的强制性子参数-Python 2.7
- wolfram-mathematica - 将 TimeSeriesAggregate 与日历月对齐