2017-04-19 72 views
0

我想實現的東西「看起來像」在我的電報機器人動畫倒計時:如何使用PyTelegrambotAPI實現倒數計時器?

sent=bot.send_message(message.chat.id,'5') 
time.sleep(1) 
bot.edit_message_text('4',message.chat.id,sent.message_id) 
time.sleep(1) 
bot.edit_message_text('3',message.chat.id,sent.message_id) 
time.sleep(1) 
bot.edit_message_text('2',message.chat.id,sent.message_id) 
time.sleep(1) 
bot.edit_message_text('1',message.chat.id,sent.message_id) 
time.sleep(1) 
bot.edit_message_text('0',message.chat.id,sent.message_id) 

有時它工作得很好,但有時我得到的錯誤:

A request to the Telegram API was unsuccessful. The server returned HTTP 400 Bad Request. Response body:error_code:400,description:"Bad Request: message is not modified

+0

衆所周知的問題,看看[這個問題](https://stackoverflow.com/questions/41373752/telegram-bot-api-error-when-try-to-edit-message-bad-請求消息未找到) – anatol

+0

我有「消息未修改」而不是「未找到消息」 - 這是一個不同的問題 – Ilya

+0

沒有像你可以假設的那麼不同 - 只是從描述的角度。我的意思是編輯信息問題的共同點。這經常發生,很少解決。 – anatol

回答

0

我親自穿上」建議你在很短的時間內頻繁地向電報發送請求。您可能最終會因爲太多的請求而超時。 我在這裏給你的兩個建議:

  1. 只是跳過任何失敗的更新。重試將花費太長的時間
  2. 使用更大的間隔(例如2秒)更新消息,以使消息服務器有足夠的時間來實現消息已更新。
+0

增加計時並沒有幫助,但錯誤處理 - 確實如此。謝謝。還有一個問題 - 也許你知道答案。雖然有一個計時器 - 其他用戶不能做任何事情。如何製作真正的多用戶機器人? – Ilya

+0

您必須異步處理倒計時。 我創建了一個使用兩個腳本的完整[countdownbot](https://t.me/countdownmebot)。一個處理正常的請求並將倒計數放入數據庫,另一個只是更新循環中的消息。 –