如何解决getUpdates限制? (电报BOT)

问题描述 投票:2回答:2

我最近一直在尝试使用官方API创建功能性电报BOT但我有一些问题。 BOT的目标是将从人x收到的所有消息转发到y组。

BOT检查“https://api.telegram.org/bot {} / getUpdates”.format(TOKEN)以获取其最新收到的消息,以便它可以检查该消息是什么以及它是否由人x发送。这一切都过去了,直到我的网址达到100条记录后才停止更新。

必须有一种方法可以自动清除这些记录吗?我读了一下“-offset”并试图通过URL Query字符串实现它,但它似乎没有结果。

谢谢您的帮助。

python bots telegram
2个回答
1
投票

您可以使用保存/转发后删除特定消息

.deleteMessage(chat_id=update.message.chat.id,message_id=update.message.message_id)


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中的最后一次更新将是第一次更新

© www.soinside.com 2019 - 2024. All rights reserved.