본문 바로가기
토이프로젝트/텔레그램 리마인더 봇

[JAVA/텔레그램봇] 1. 리마인더 봇 개발하기 - 기초 환경 세팅

by 상후 2022. 10. 3.
728x90
반응형

 

 

 

토이프로젝트 - 텔레그램 리마인더 봇 만들기 - 기초 환경 세팅


기초 환경 세팅하기

 

1. 텔레그램 봇 생성하기(https://chancoding.tistory.com/149)

  - 해당 블로그를 참고하여 1.4번까지 진행하여 봇을 생성하시면 됩니다.


2. 스프링 부트 프로젝트 생성하기

  - https://start.spring.io/ 기본적인 스프링 부트 프로젝트를 생성해줍니다. 추가한 의존성으론 Lombok, devtools입니다.

  - 각자 필요한 의존성을 추가해주시면 됩니다.


3. 텔레그램 봇 디펜던시 추가하기

 

- gradle 프로젝트 : build.gralde

    implementation 'org.telegram:telegrambots:6.1.0'

 

- maven 프로젝트 : pom.xml

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

4. 리마인더 봇 생성하기

  - TelegramLongPollingBot을 상속받아 클래스를 생성 후 추상 메서드들을 구현해줍니다.

  - 메서드 별 간략한 설명은 주석을 남겨두었습니다.

 

package com.shmoon.telegramreminderbot.bot;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import org.telegram.telegrambots.meta.api.objects.Update;

@Component
public class ReminderBot extends TelegramLongPollingBot {

    @Value("${BOT_TOKEN_KEY}")
    private String botToken;

    @Override
    public String getBotUsername() { // BotFather에서 지정한 UserName
        return "SH_reminder_bot";
    }

    @Override
    public String getBotToken() { // BotFather에서 받은 Token
        return botToken;
    }

    @Override
    public void onUpdateReceived(Update update) { // 메시지를 받았을 때 실행되는 메서드
        System.err.println("메시지 받았음");
    }
}

 

- 간단한 테스트를 해보려면 스프링 부트 메인 메서드를 실행시키면 됩니다.

- 실행이 완료되면 아무 채팅을 입력 후 콘솔창에 onUpdateReceived를 테스트해보면 됩니다.

간단한 테스트

 

- Token 값은 공개할 수 없어 properties 파일로 따로 관리하였습니다. 

- token을 담는 변수를 따로 생성하여 @Value를 통해 토큰 값을 가져와 사용하도록 하였습니다. 


5. 간단한 테스트 코드 작성하기.

  - 봇이 잘 생성되었는지 확인하는 간단한 테스트 코드를 작성했습니다.

 

package com.shmoon.telegramreminderbot.bot;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;

import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.*;

@SpringBootTest
class ReminderBotTest {

    @Autowired
    ReminderBot reminderBot;

    @Test
    void 기본_설정_테스트() {
        assertThat(reminderBot).isNotNull();
    }


}

깃허브 주소 참고

https://github.com/SanghooMoon/telegram-reminder-bot/commit/5e8e4272268494f01758b2ec4671f80af2f11702

 

개발 환경 세팅 · SanghooMoon/telegram-reminder-bot@5e8e427

- 텔레그램 봇 의존성 추가 - 개발 환경 세팅

github.com

 

 

 

 

728x90
반응형

댓글