ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA - 텔레그램 API 봇을 이용하여 메시지 보내기
    IT/JAVA 2020. 5. 8. 23:52
    반응형

     

    안녕하세요.

    텔레그램 API 봇을 이용하여 메시지를 보내 보는 소스를 만들어 볼 예정입니다.

     

    텔레그램 API 봇을 만들어,

    그 봇을 대화방에 초대하면 서비스를 관리하거나, 보고를 자동화 할 수 있는 기능들이 나올 것 같아요.

    무수히 많으므로, 요것들을 기초로 응용하여서 만드시면 될 것 같습니다.

     

     

     

    1. @BotFather 호출

     

    텔레그램 모바일 또는 웹을 통하여,

    검색창에 'BotFather' 을 입력하여 검색합니다.

     

     

     

     

     

     

    2. 시작 및 새로운 봇을 생성합니다.

     

    1) /start 입력

     

     

     

     

     

    2) /newbot

     

    /newbot을 입력하면,

    첫번 째 질문으로는 name을 정하라고 나옵니다. 여기서의 name은 중복이 가능하고 변경도 가능하니 편하게 적으시면 됩니다.

    두번 째 질문으로는 username을 정하라고 나옵니다. username은 중복이 안됩니다.

    그리고, username은 마지막 끝에 '_bot' 또는 'bot'을 붙혀 bot으로 끝나게 만들어야 합니다.

     

     

     

     

     

     

    3. 토큰번호 생성

     

    Use this token to access the HTTP API : 11759~ 

    이 부분이 나의 토큰입니다. 요것을 메모장이나 다른 곳에 저장해두세요.

     

     

     

     

     

     

    4. 토큰 생성 확인

     

    크롬 url 에 자신의 토큰 API 키값을 넣어 접속해보시면,

    결과 값으로 {"ok":true,"result":[]} 요런 값이 나온다면 정상입니다.

    현재는 아무것도 안했기 때문에 result에 빈값이 생성되는 것입니다.

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

     

     

    5. chat_id 확인

     

    요기 부분에서 "t.me/kim_ha_bot" 을 클릭하면,

    해당 봇과 대화를 할 수 있습니다. 

     

     

     

     

    봇과 대화를 시작하고,

    /start 라는 명령어를 입력해줍니다.

     

     

     

     

     

    그 후에 다시, 크롬 url 에 자신의 토큰 API 키값을 넣어 접속해보시면,

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

     

    아래와 같이 출력됩니다.

    여기서 id에 입력되 있는 9글자가 chat_id 입니다.

     

     

     

     

    이제 토큰과 chat_id도 알았으니,

    소스를 작성하여 텔레그램으로 메시지를 보내보겠습니다.

     

    JAVA 에서는 Get 방식으로 호출만 하면 되기 때문에 굉장히 쉽습니다.

     

     

     

    6. telegram.java 작성

     

    Token과 chat_id를 변수로 만들어 URL을 호출하는 방식입니다.

    여기서 function 파라미터를 받아서 처리할 수도 있고 무궁무진 한 것 같네요.

    이렇게 함수를 만들었으니 실제로 호출해봐야겠죠?

     

    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    public class telegram {
    	public static void funcTelegram(){
    		String Token = "TOKEN 번호";
    		String chat_id = "chat_id 입력";
    		String text = "메시지 전송 테스트" ;
    		
    		BufferedReader in = null;
    		
    		 try {
    			 URL obj = new URL("https://api.telegram.org/bot" + Token + "/sendmessage?chat_id=" + chat_id + "&text=" + text); // 호출할 url
    			 
    			 HttpURLConnection con = (HttpURLConnection)obj.openConnection();
    			 con.setRequestMethod("GET");
    			 in = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8"));
    			 String line;
    			 
    			 while((line = in.readLine()) != null) { // response를 차례대로 출력
    				 System.out.println(line);
    			 }		 
    			 
    		 } catch(Exception e) {
    			 e.printStackTrace();
    		 } finally {
    			 if(in != null) try { in.close(); } catch(Exception e) { e.printStackTrace(); }
    		 }
    	}
    }

     

     

    funcTelegram() 함수를 호출할 때에는,

    필요한 class 에 이렇게 추가하여 호출합니다.

    telegram.funcTelegram();

     

     

    7. 테스트 확인

     

    짜잔

    정상적으로 메시지가 왔습니다.

     

     

     

     

     

     

    *봇 삭제 

     

    Borfather 과 대화하여 아래와 같이 실행하면 됩니다.

     

     

     

     

     

     

     

    텔레그램 API 봇을 이용하여 메시지 보내기를 해봤는데,

    생각보다 많이 복잡하지 않고 쉬운 것 같아요.

     

    그리고 이 기능을 통하여 서비스 모니터링 또는 보고들을 자동으로 만들 수 있고,

    여러가지의 아이디어는 무궁무진한 것 같습니다.

     

    그럼 저는 이만 !

     

     

     

     

     

     

    반응형

    댓글

Designed by black7375.