簡體   English   中英

如何解決 getUpdates 限制? (電報BOT)

[英]How to work around getUpdates limit? (Telegram BOT)

我最近一直在嘗試使用官方 API 創建一個功能性電報 BOT,但我遇到了一些問題。 BOT 的目標是將所有從人 x 收到的消息轉發到組 y。

BOT 檢查“ https://api.telegram.org/bot {}/getUpdates”.format(TOKEN) 以獲取其最新收到的消息,以便它可以檢查該消息是什么以及它是否由人 x 發送。 這一切都曾經有效,直到我的網址在達到 100 條記錄后停止自我更新。

必須有一種方法可以自動清除這些記錄,對嗎? 我讀了一些關於“-offset”的內容,並嘗試通過 URL 查詢字符串來實現它,但似乎沒有結果。

感謝您的幫助。

您可以使用以下命令在保存/轉發特定消息后刪除它

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

使用偏移以稍微不同的方式解決了這個問題(即使我能學會它,也可以在給定時間后猜測)。

因為在我發送消息的實例之后,我不再需要舊的更新,所以我使用了這個:

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

如前所述, def 在 send_message 語句之后以以下形式調用:

OFFSET = get_update_id(get_updates(OFFSET))

這將確保 getUpdates 中的最后一次更新將是再次運行代碼后的第一次更新

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM