알쓸전컴(알아두면 쓸모있는 전자 컴퓨터)

telegrambots (java api) 기본 sample code 본문

기타/메신저 연동

telegrambots (java api) 기본 sample code

백곳 2018. 7. 6. 23:24

telegrambots (java api)


텔레그램의 봇은

https://core.telegram.org/bots 

에 나와 있는 기능을 할수 있습니다.


하지만 해당 bot 을 프로그램 하기 위해서는


https://core.telegram.org/api


에 있는 통신을 프로그램으로 작성 하여야 합니다.


예를 들면 http의 post 와 get 등을 통해서 말이죠


그런데 이러한것을 보다 쉽게 사용하기 위해서 사람들이 open source 로 만들어 놓은 라이브러리중 java 로 잘 만들어 져있는것이 있어서


샘플 코드와 학습 및 정리 목적으로 글을 정리 합니다.


https://github.com/rubenlagus/TelegramBots


해당 프로젝트 github 주소 입니다.


일반적으로 쉽게 설치하는 방법은 Maven 으로


    <dependency>
        <groupId>org.telegram</groupId>
        <artifactId>telegrambots</artifactId>
        <version>3.6.1</version>
    </dependency>


해당 프로젝트를 추가 합니다.


먼저 메세지를 bot이 수신 받을수 있는 프로젝트의 sample 코드를 설명 하겠습니다.


https://github.com/rubenlagus/TelegramBots/blob/master/TelegramBots.wiki/Getting-Started.md


상세 내용은 위의 주소 및 위의 코드를 참조 하였습니다.


public class MyAmazingBot extends TelegramLongPollingBot {
    @Override
    public void onUpdateReceived(Update update) {
        // TODO
    }

    @Override
    public String getBotUsername() {
        // TODO
        return "myamazingbot";
    }

    @Override
    public String getBotToken() {
        // TODO
        return "123456789:qwertyuioplkjhgfdsazxcvbnm";
    }
}


위와 같이 TelegramLongPollingBot  을 상속 받고 오버라이드 부븐을 작성 해 줘야 합니다.


먼저 Token 이란것을 할당 받고 bot을 생성 하야 합니다.


Token 발급 받기


bot 개발을 위해서 우선은 토큰을 받아야 합니다. 


그러기 위해서는 botfather 을 텔레그램에서 찾아서 채팅을 해야 합니다. 



그리고 봇을 생성 하기 위해서 명령어 /newbot 을 입력 합니다. 

주의점은 bot의 이름은 항상 _bot 으로 끝나야합니다. 


위에 해당 하는 부분이 Token 입니다.


할당 받은 토큰의 정보를 입력해 주면 됩니다.


해당 내용을 getBotUsername 오버라이드 함수와 getBotToken 오버라이드 함수에 정보를 입력해 줍니다.


onUpdateReceived  메소드는 콜백 메소드로 


추후 사용자가 bot에서 채팅을할때 bot이 받은 메세지를 받을때  해당 함수로 옵니다.


    @Override
    public void onUpdateReceived(Update arg0) {
        // TODO Auto-generated method stub
        System.out.println(arg0.getMessage().getFrom().getId()); //get ID 는 suer id
        System.out.println(arg0.getMessage().getFrom().getFirstName()); //get ID 는 suer id
        System.out.println(arg0.getMessage().getFrom().getLastName()); //get ID 는 suer id
        System.out.println(arg0.getMessage().getChatId());  // 채팅방의 ID
        System.out.println(arg0.getMessage().getText());  // 받은 TEXT
        System.out.println(arg0.getMessage().getReplyToMessage().getText());  // bot이 물어 본 받은 TEXT 사용자가 봇에게 답장 할때 사용
    }


저같은 경우 일단 간단히 다음과 같은 정보를 받을수 있습니다.


public static void main(String[] args) {
   
    ApiContextInitializer.init();
    TelegramBotsApi telegramBotsApi = new TelegramBotsApi();
    MyAmazingBot bot =  new MyAmazingBot();


        try {
            telegramBotsApi.registerBot(bot);
        } catch (TelegramApiException e) {
            e.printStackTrace();
        }

}

그리고 다음과 같이 사용 할수 있습니다.


이 이외의 사진을 주고 받거나 파일을 주고 받거나 키보드 버튼을 만들거 등등 다양한 기능을 사용할수 있는데요


이에 해당 하는 설명 및 sample 코드는


https://github.com/rubenlagus/TelegramBots/wiki/FAQ


위의 코드에 잘나와 있습니다.




'기타 > 메신저 연동' 카테고리의 다른 글

Telegram bot 개발  (0) 2017.10.28
LINE Notify 사용하기 [메신저 알람]  (0) 2017.09.28
Comments