2017-09-26 73 views
0

我製作了一個TelegramBot,用於計算我的廣度,其中一個功能應該是計算特定時間段的費用並顯示這些費用。我使用MySQL數據庫,所以我查詢它的工作原理,但TelegramAPI的sendMessage允許發送最大長度爲4096UTF-8個字符的消息,如果我有大型數據庫,這可能是不夠的。那麼我怎樣才能讓機器人發送幾條消息呢?例如。如何使我的TelegramBot連續發送幾條消息?

public SendMessage onGetExpensesCommand(Message message, String[] dateFrames){ 
    SendMessage returnMessage = new SendMessage(); 
    returnMessage.setText(getExpensesFromDB(String[] dateFrames));//queries DB 
    returnMessage.setReplyToMessageId(message.getMessageId()); 
    returnMessage.setChatId(message.getChatId().toString()); 
    return returnMessage; 
} 

稍後發送消息。

+1

究竟是什麼問題?如果您可以發送一條消息,則只需再次調用類似的代碼。 –

回答

1

我不知道java,但我在python中爲它做了一個很好的功能。 我建立消息字符串。一個消息字符串完成後,我創建一個列表,並且我將這個長消息拆分成許多很小的(電報允許的最大大小)消息,並將它們添加到列表中。

最後,我運行一個for循環,並使用sendMessage方法逐一發送它們。我在他們之間增加了一段時間睡眠,以確保不會遇到電報洪水限制。

我在變量中存儲第一個發送的消息,一旦循環結束,我發送一條消息「點擊此處轉到第一條消息」回覆第一條發送的消息。

這是唯一困難的部分是如果你也必須處理格式化

+0

謝謝,其實這很容易。出於某種原因,我的想法是,每次機器人發送消息時,它都保持空閒狀態,直到接收到下一次更新。 – TeamBeam

相關問題