2017-09-26 1 views
0

Je fais un TelegramBot qui va compter mes étendues, et une de ses fonctions devraient compteront charges de la période de temps spécifique et de montrer ces dépenses. J'utilise MySQL DB, donc je suis Interrogation et il fonctionne, mais sendMessage de TelegramAPI permet d'envoyer des messages avec la longueur maximale 4096UTF-8 caractères, qui peuvent être ne suffit pas si j'ai grande base de données. Alors, comment puis-je faire le bot pour envoyer plusieurs messages? Par exemple.Comment faire pour que mon TelegramBot envoie plusieurs messages d'affilée?

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

Le message suivant est envoyé.

+1

Quel est le problème? Si vous pouvez envoyer un message, appelez le code similaire une fois de plus. –

Répondre

1

je ne sais pas java, mais je l'ai fait une fonction utile en python. Je crée la chaîne de message. un de la chaîne de message est terminé, je crée une liste et je diviser long message que dans de nombreux petits messages (la taille maximale autorisée par télégramme) et je les ajouter dans la liste.

A la fin je lance une boucle et j'utiliser la méthode sendMessage d'envoyer tous un par un. J'ajoute un temps de sommeil entre eux pour m'assurer de ne pas atteindre les limites d'inondation des télégrammes.

je stocke dans une variable le premier message envoyé, et une fois que la boucle est terminée j'envoyer un message « cliquez ici pour accéder au premier message » en réponse au premier message envoyé. La seule difficulté est que vous devez gérer le formatage

+0

merci, en fait c'était assez facile. Pour une raison que j'ignore, mon esprit a été que chaque fois que le bot envoie un message, il reste inactif jusqu'à la prochaine mise à jour. – TeamBeam