-
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 봇을 이용하여 메시지 보내기를 해봤는데,
생각보다 많이 복잡하지 않고 쉬운 것 같아요.
그리고 이 기능을 통하여 서비스 모니터링 또는 보고들을 자동으로 만들 수 있고,
여러가지의 아이디어는 무궁무진한 것 같습니다.
그럼 저는 이만 !
반응형'IT > JAVA' 카테고리의 다른 글
초기화 블럭 (initialization block) (0) 2023.01.29 JAVA - MD5, SHA256 암호화 하기 (해쉬 코드 얻기) (1) 2020.06.09 JAVA - 로또 게임 만들기 (9) 2020.04.28 JAVA - 가위바위보 만들기 (0) 2020.04.28 JAVA - 상속 및 인터페이스 (0) 2020.04.28 댓글