[JAVA] 텔레그램과 Feign 사용하여 알림받기

yeonjoo913·2023년 9월 1일

JAVA

목록 보기
13/19

특정 경우에 대한 알림을 텔레그램으로 전달해달라는 요청이 있어서 작업하다가 정리할 겸 작성하기로했다.

텔레그램 봇 만들기

  1. @BotFather 호출

    텔레그램 모바일 혹은 웹을 통하여 BotFather를 검색

  1. /start 입력으로 시작

  2. /newbot 입력

    1) name 입력 - 중복이 가능하고 변경도 가능하다.

    2) username입력 - 중복 불가. 마지막 끝에 “_bot” 또는 “bot”으로 끝나야한다.

  3. 토큰 번호 생성

    Use this token to access the HTTP API : ~~ 이후 부분이 나의 토큰이다.

  4. 토큰 생성 확인

    크롬 url에 자신의 토큰 API 키 값을 넣어 접속하면 결과값이 {"ok":true,"result":[]}

    와 같은 값이 나온다면 정상이다.

    📎 https://api.telegram.org/bot + 토큰 API 키값 + /getUpdates
  5. chat_id 확인

    t.me/~ 를 클릭 시 해당 봇과 대화를 할 수 있다.

    해당 봇에 접근 후 /start 입력 , 그 후 크롬 url에 자신의 토큰 API 키 값을 넣어 접속해보면

    📎 https://api.telegram.org/bot + 토큰 API 키값 + /getUpdates

    결과에서 id에 입력되어 있는 9글자가 chat_id이다.

텔레그램 봇 그룹 채팅방에 초대하기

  1. 그룹 채팅방을 만든다. (봇 포함)

  2. 아무 채팅이나 보낸다.

  3. chat_id 알아내기

    📎 https://api.telegram.org/bot + 토큰 API 키값 + /getUpdates

    기존 chat_id 입력하는 부분에 그룹채팅방의 chat_id를 입력하면 된다.

Feign을 사용하여 텔레그램 메세지 전송

  • 서비스 로직에서 메시지를 구성한 후, feign 을 사용하여 호출하여 텔레그램을 전송하는 방식으로 개발하였다.
  • telegram-api.url 은 bot 토큰값까지 같이 추가해서 url을 구성하였다.
@FeignClient(name = "TelegramBotApiInterface"
        ,url = "${feign.telegram-api.url}"
        , configuration = {FeignAutoConfiguration.class})
public interface TelegramBotApiInterface {

    @PostMapping(value = "/sendMessage?chat_id={chatId}&text={text}")
    Response sendTeleMessage(@PathVariable("chatId")String chatId,@PathVariable("text")String text);

}
profile
주니어 백엔드 개발자. 까먹는다 기록하자!

0개의 댓글