2017-09-26 1 views
0

Ich mache eine TelegramBot, dass meine Weiten geht zu zählen, und eine seiner Funktionen sollten Kosten für den bestimmten Zeitraum und zeigt diese Kosten werden zu zählen. Ich benutze MySQL DB, also ich frage und es funktioniert, aber sendMessage von TelegramAPI erlaubt, Nachrichten mit der maximalen Länge 4096UTF-8 Zeichen zu senden, die möglicherweise nicht genügend sind, wenn ich große Datenbank habe. Wie kann ich den Bot dazu bringen, mehrere Nachrichten zu versenden? Z.B.Wie kann ich mit meinem TelegramBot mehrere Nachrichten nacheinander versenden?

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

Spätere Nachricht wird gesendet.

+1

Was ist eigentlich das Problem? Wenn Sie eine Nachricht senden können, rufen Sie denselben Code noch einmal auf. –

Antwort

1

ich weiß nicht, Java, aber ich habe eine nette Funktion für sie in Python. ich baue den Nachrichtenstring. Ist der Nachrichten-String fertig, erstelle ich eine Liste und teile diese lange Nachricht in viele kleine (die maximale Größe, die durch Telegramme erlaubt ist) Nachrichten und füge sie in die Liste ein.

Am Ende läuft i eine for-Schleife und i verwenden nachrichts Verfahren alle von ihnen einen nach dem anderen zu senden. Ich füge einen Zeitschlaf zwischen ihnen hinzu, um sicherzustellen, dass ich keine Grenzen für Telegrammfluten trete.

speichere ich in einer Variablen die erste Nachricht gesendet, und sobald die Schleife i eine Nachricht beendet senden „klicken Sie hier, um die erste Nachricht zu gehen“ in Antwort auf die erste Nachricht gesendet.

die einzige schwierige Teil ist, wenn Sie zu handhaben müssen Formatierung

+0

danke, eigentlich war es ganz einfach. Aus irgendeinem Grund wurde mir bewusst, dass jedes Mal, wenn ein Bot eine Nachricht sendet, er bis zur nächsten Aktualisierung im Leerlauf bleibt. – TeamBeam

Verwandte Themen