【问题标题】:How to make my TelegramBot send several messages in a row?如何让我的 Telegram Bot 连续发送多条消息?
【发布时间】:2017-12-01 14:30:15
【问题描述】:

我制作了一个 TelegramBot 来计算我的费用,它的功能之一应该是计算特定时间段的费用并显示这些费用。我使用 MySQL DB,所以我正在查询并且它可以工作,但是 TelegramAPI 的 sendMessage 允许发送最大长度为 4096UTF-8 字符的消息,如果我有大数据库,这可能还不够。那么如何让机器人发送多条消息呢?例如

 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;
}

稍后发送消息。

【问题讨论】:

  • 真正的问题是什么?如果您可以发送一条消息,只需再调用一次类似的代码。

标签: java telegram telegram-bot


【解决方案1】:

我不知道 java,但我在 python 中为它做了一个很好的函数。 我构建消息字符串。一个消息字符串完成后,我创建一个列表并将该长消息拆分为许多小(电报允许的最大大小)消息,然后将它们添加到列表中。

最后,我运行了一个 for 循环,并使用 sendMessage 方法将它们一一发送。我在它们之间添加了一个睡眠时间,以确保不会达到电报洪水限制。

我将第一条发送的消息存储在一个变量中,一旦循环结束,我会发送一条消息“单击此处转到第一条消息”以回复第一条发送的消息。

唯一困难的部分是如果你也必须处理格式

【讨论】:

  • 谢谢,其实很简单。出于某种原因,我的想法是,每次机器人发送消息时,它都会保持空闲状态,直到收到下一次更新。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-20
  • 1970-01-01
  • 1970-01-01
  • 2019-03-09
  • 1970-01-01
相关资源
最近更新 更多