我制作了一个TelegramBot,它将计算我的范围,其中一个功能应该是计算特定时间段的费用并显示这些费用。我使用的是MySQL DB,所以我在查询它的工作原理,但是TelegramAPI的sendMessage允许发送最大长度为4096UTF-8字符的消息,如果我有大数据库,这可能是不够的。那么如何让机器人发送几条消息呢? E.g。
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;
}
稍后发送消息。
答案 0 :(得分:1)
我不知道java,但我在python中为它做了一个很好的功能。 我构建了消息字符串。一个消息字符串完成后,我创建一个列表,然后我将这个长消息分成许多小的(电报允许的最大大小)消息,并将它们添加到列表中。
最后我运行一个for循环,我使用sendMessage方法逐个发送所有这些。我在它们之间添加一段时间睡眠以确保不会达到电报洪水限制。
我在变量中存储第一个发送的消息,一旦循环结束,我发送一条消息“点击此处转到第一条消息”以回复第一个发送的消息。
唯一困难的部分是你必须处理格式化