0%

Spring Boot에 Telegram 연동 시 BOTSESSION 에러 발생

Spring boot에 Telegram을 연동시 에러 발생

Spring boot에서 프로젝트 연동을 개발하였다.
그런데 개발 도중 운영 서버에 에러가 발생하였다는 알림이 있어서 확인해보니 아래와 같은 에러 로그가 무수히 쌓이고 있었다.

1
2
3
4
5
2019-08-14 17:00:54 ERROR :[BotLogger.java]severe(85) : BOTSESSION
org.telegram.telegrambots.meta.exceptions.TelegramApiRequestException: Error getting updates
at org.telegram.telegrambots.meta.api.methods.updates.GetUpdates.deserializeResponse(GetUpdates.java:118)
at org.telegram.telegrambots.updatesreceivers.DefaultBotSession$ReaderThread.getUpdatesFromServer(DefaultBotSession.java:257)
at org.telegram.telegrambots.updatesreceivers.DefaultBotSession$ReaderThread.run(DefaultBotSession.java:186)

원인

이곳을 참고하여 문제 해결법을 찾게 되었다.
내가 개발한 환경은 하나의 봇에서 개발, 테스트, 운영 총 세 가지 환경에서 사용하고 있었다.
즉 각 환경에서 아래와 같은 코드가 중복적으로 들어가 있었다.

1
new TelegramBotsApi().registerBot(new MyAmazingBot());

즉 이미 등록된 봇 코드인데 중복해서 등록을 하여 발생한 문제이다.
이 문제를 해결하기 위해서는 registerBot 메서드를 실행할 때 한번만 등록 후 주석 처리 등을 해주면 된다.

사실 이 방법은 미봉책 방법인 것 같다.
이 부분에 대해서는 좀 더 찾아서 포스팅을 업데이트 해두도록 할 예정이다.