업무하다가 웹사이트를 빈번하게 들어가서 검색하기 어려운 것들이 조금 있어서,
메신저에서 검색하고 싶은 내용들이 많아서 봇을 만들어 보려고 한다.
텔레그램 봇 기능
https://core.telegram.org/bots
에 명시된 기능 가능
텔레그램 bot api 문서
문서가 있지만 이거로 보고 개발하기 내용물이 많아 라이브러리를 사용하는게 낫겠다.
우선 이런 API 들을 사용하려면 키를 발급 받아야 한다.
bot 만들기 및 API 키 발급하기
텔레그램 검색창에 BotFather 검색 후 말을 건다.
BotFather 를 사칭하는 애가 ㅁ낳으니 위에서 처럼 ⌵ 로 체크된 공식 파더한테 말을 걸어라
방에 들어가면 위와 같이 help 메시지가 온다.
/newbot 이라고 채팅해서 봇을 만들자
- [ /newbot ] 명령어를 입력하면, 봇의 이름을 입력하라고 함.
- 봇의 이름이 'bot'으로 끝나지 않는 경우 생성되지 않음.
- 정상적으로 등록되면 'HTTP API Access Token'을 발급해줌.
방이름과 bot 아이디는 변경 가능하다.
방이름 변경 - /mybots
봇이름 변경 - /setname
봇을 만들면 API 키값을 준다.
JAVA API 사용
Java
- TelegramBots. A simple to use library to create Telegram Bots.
https://github.com/rubenlagus/TelegramBots - API 라이브러리 - Java API. Telegram Bot API for Java.
https://github.com/pengrad/java-telegram-bot-api - API 라이브러리
둘 중에 하나 골라서 사용하면 된다.
나는 https://github.com/rubenlagus/TelegramBots 이 API 를 골랐다. 이유는 딱히 없다.
자바 API 라이브러리
<dependency>
<groupId>org.telegram</groupId>
<artifactId>telegrambots</artifactId>
<version>5.1.1</version>
</dependency>
예제코드
public static void main(String[] args) {
SpringApplication.run(TelegramApplication.class, args);
try {
TelegramBotsApi api = new TelegramBotsApi(DefaultBotSession.class);
api.registerBot(new TestHandlers());
} catch (TelegramApiException e) {
e.printStackTrace();
}
}
위 처럼 TelegramBotsApi 객체 생성 후 봇 정보를 기입한 클래스를 registerBot 에 등록만 해주면 된다.
세부로직은 등록한 클래스 TestHandlers 에서 작성한다.
public class TestHandlers extends TelegramLongPollingBot {
@Override
public String getBotUsername() {
return "방제말고 bot 이름";
}
@Override
public void onUpdateReceived(Update update) throws TelegramApiException {
Message message = update.getMessage();
log.info(message.toString());
if (update.hasMessage() && update.getMessage().hasText()) {
SendMessage sendMessage = new SendMessage();
sendMessage.setChatId(update.getMessage().getChatId().toString());
sendMessage.setText("자동 응답으로 보낼 메시지");
execute(sendMessage);
}
}
@Override
public String getBotToken() {
return "API_발급된키 넣어주세요.";
}
}
봇으로 등록 할 클래스 에는 TelegramLongPollingBot 을 상속 받아줘서 token 값 및 bot name 을 입력해서
onUpdateReceived 에 로직 처리를 해주면 된다.
Update 클래스에는 유저 이름 및 id 등 여러 데이터가 넘어온다.
위와 같이 스프링 서버나 자바 를 run 시켜주면
와 같이 웹 url 로 이동해 텔레그램 메신저로 이동해서 등록된 봇을 확인할 수 있다.
굳이 java api 로 하지않고 텔레그램 api 를 그대로 사용해도 된다.
'서비스평가 및 사용 > API사용' 카테고리의 다른 글
구글 로그인 google oauth2 - 프론트 및 백엔드 별도 (0) | 2024.07.19 |
---|---|
[DART API] 전자공시 API 사용하기 (0) | 2021.04.28 |