我最近一直在尝试使用官方API创建功能性电报BOT,但我遇到了一些问题。 BOT的目标是将从人x收到的所有消息转发到组y。
BOT检查" https://api.telegram.org/bot {} / getUpdates" .format(TOKEN)获取其最新收到的消息,以便它可以检查该消息是什么以及是否由人x发送。这一切都过去了,直到我的网址达到100条记录后才停止更新。
必须有办法自动清除这些记录吗?我读了一下关于" -offset"并尝试通过URL查询字符串实现它,但它似乎没有结果。
感谢您的帮助。
答案 0 :(得分:1)
使用
保存/转发后,您可以删除特定消息 .deleteMessage(chat_id=update.message.chat.id,message_id=update.message.message_id)
答案 1 :(得分:1)
使用偏移量以稍微不同的方式解决了这个问题(在给定时间之后猜测,即使我可以学习它)。
因为在我发送消息的实例之后我不再需要旧的更新了,我使用了这个:
def get_update_id(updates):
num_updates = len(updates["result"])
last_update = num_updates - 1
update_id = updates["result"][last_update]["update_id"]
return (update_id)
其中更新等于:
def get_updates(OFFSET):
url = URL + "getUpdates?offset={}".format(OFFSET)
js = get_json_from_url(url)
return js
如上所述,在send_message语句之后调用def,格式为:
OFFSET = get_update_id(get_updates(OFFSET))
这将确保getUpdates中的最后一次更新将是代码再次运行后的第一次更新