토이프로젝트 - 텔레그램 리마인더 봇 만들기 - 기초 환경 세팅
기초 환경 세팅하기
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
'토이프로젝트 > 텔레그램 리마인더 봇' 카테고리의 다른 글
[JAVA/텔레그램봇] 5. 리마인더 봇 개발하기 - 리마인더 확인 기능 추가 (0) | 2022.10.10 |
---|---|
[JAVA/텔레그램봇] 4. 리마인더 봇 개발하기 - 리마인더 등록 기능 추가 (0) | 2022.10.09 |
[JAVA/텔레그램봇] 3. 리마인더 봇 개발하기 - 명령어(Command) 사용하기 (1) | 2022.10.03 |
[JAVA/텔레그램봇] 2. 리마인더 봇 개발하기 - 메아리 기능 (1) | 2022.10.03 |
[JAVA/텔레그램봇] 0. 리마인더 봇 개발하기 (0) | 2022.10.03 |
댓글