2017-09-26 6 views
0

나는 내 광대역 수를 계산할 TelegramBot을 만들고 그 기능 중 하나는 특정 기간 동안 비용을 계산하고 이러한 비용을 표시해야합니다. MySQL DB를 사용하기 때문에 쿼리 중이며 작동하지만 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

자바를 모르지만 파이썬에서 좋은 기능을 만들었습니다. 메시지 문자열을 작성합니다. 하나의 메시지 문자열이 끝나면, 나는 목록을 만들고 그 작은 메시지 (전보가 허용하는 최대 크기)로 긴 메시지를 나눠서 목록에 추가합니다.

마지막으로 for 루프를 실행하고 sendMessage 메서드를 사용하여 하나씩 보내십시오. 나는 그들 사이에 수면 시간을 추가하여 전보 홍수 한계에 도달하지 않도록한다.

변수에 첫 번째 보낸 메시지를 저장하고 루프가 끝나면 첫 번째 보낸 메시지에 대한 회신에서 "첫 번째 메시지로 이동하려면 여기를 클릭하십시오"라는 메시지를 보냅니다. 실제로 문제가 무엇

+0

감사합니다. 실제로는 꽤 쉬웠습니다. 몇 가지 이유로 봇이 메시지를 보낼 때마다 다음 업데이트가 수신 될 때까지 유휴 상태를 유지한다는 생각이 들었습니다. – TeamBeam