주기적으로 동일한 사이트에서 새로운 소식을 확인 해야 할 일이 있어서 이걸 자동으로 알려주는 텔레그램 봇을 하나 만들어봤다.
텔레그램에서는 BotFather를 이용하면 별도의 개발 지식 없이도 몇 분 안에 봇을 만들 수 있다.
- 텔레그램 봇 만들기
- Bot Token 확인하기
- 알림을 받을 채널 만들기
- 봇을 채널 관리자로 추가하기
- 실제 테스트 메시지 보내보기
정도까지만 간단하게 정리해보려고 한다.
1. BotFather에서 봇 만들기
텔레그램에서 봇을 만들 때 사용하는 공식 봇이 있다. 텔레그램 검색창에서 아래 계정을 검색한다.
@BotFather
BotFather와 채팅을 시작한 뒤 다음 명령어를 입력한다.
/start
/newbot


그러면 새로운 봇을 만드는 과정이 시작된다.
2. 봇 이름 정하기
먼저 BotFather가 봇의 이름을 물어본다. 이 이름은 실제 텔레그램에서 표시되는 이름이기 때문에 자유롭게 정하면 된다.
예를 들어 이번에 내가 만든 한양대학교 인공지능융합대학원 학과 공지사항을 알려주는 봇이라면 다음처럼 만들 수 있다.

한글도 사용할 수 있지만 영어로 만들어 보았다.
3. 봇 사용자 이름 정하기
다음으로 봇의 사용자 이름(username)을 입력해야 한다. 사용자 이름은 다른 봇과 중복될 수 없고, 마지막이 반드시 bot으로 끝나야 한다.
예를 들면 다음과 같다.
example_department_notice_bot
사용할 수 없는 이름이라면 BotFather가 다시 입력하라고 알려준다. 사용 가능한 이름을 입력하면 봇 생성이 완료된다.
나는 아래처럼 봇 이름과 봇 사용자 이름을 동일하게 만들었다.

위 사진처럼 끝에 공백이 들어가 있는 등 bot으로 끝나지 않으면 친절하게 알려준다.
4. Bot Token 확인하기
봇이 생성되면 BotFather가 Done! 하는 말풍선과 함께 HTTP API Token을 발급해준다.
대략 다음과 같은 형태다.
1234567890:ABCDEF_EXAMPLE_TOKEN
이 토큰은 나중에 프로그램이나 다른 서비스에서 텔레그램 봇으로 메시지를 보낼 때 사용한다. 여기서 중요한 점은 이 토큰을 비밀번호처럼 관리해야 한다는 것이다.
GitHub, 블로그 글, 화면 캡처 등에 실제 토큰이 노출되지 않도록 주의해야 한다.
특히 블로그에 테스트 과정을 캡처해서 올릴 예정이라면 주소창이나 터미널에 실제 토큰이 보이지 않는지 꼭 확인하는 것이 좋다.
만약 토큰을 실수로 공개했다면 기존 토큰은 그대로 사용하지 말고 BotFather에서 폐기한 뒤 새 토큰을 발급한다.
5. 알림을 받을 텔레그램 채널 만들기
봇이 메시지를 보낼 장소가 필요하다면 텔레그램 채널을 하나 만들면 된다. 텔레그램 앱에서 새 메시지 또는 작성 버튼을 누른 뒤 새 채널을 선택한다.
채널 이름을 입력하고 공개 채널 또는 비공개 채널 여부를 선택하면 된다. 예를 들어 공개 채널의 사용자 이름을 다음과 같이 만들었다고 해보자.
example_department_notice
그러면 채널 주소는 다음과 같은 형태가 된다. https://t.me/example_department_notice
공개 채널이라면 프로그램에서 메시지를 보낼 때 다음과 같이 채널 사용자 이름을 사용할 수 있다.
@example_department_notice
6. 봇을 채널 관리자로 추가하기
봇을 만들었다고 바로 채널에 메시지를 보낼 수 있는 것은 아니다. 해당 봇을 채널의 관리자로 추가해야 한다.
채널을 연 뒤 채널 설정에서 관리자 → 관리자 추가로 들어간다. 이후 앞에서 만든 봇의 사용자 이름을 검색한다.
예를 들어 @example_department_notice_bot 을 검색해서 추가하면 된다.
권한 설정 화면에서는 봇이 채널에 글을 올릴 수 있도록 메시지 게시 권한을 허용한다.

여기까지 했다면 봇이 채널에 메시지를 보낼 준비가 끝난다.
7. 테스트 메시지 보내보기
설정이 제대로 됐는지 확인하기 위해 실제로 채널에 메시지를 한 번 보내보자. Telegram Bot API에서는 다음과 같은 주소를 이용해 메시지를 보낼 수 있다.
https://api.telegram.org/bot<봇토큰>/sendMessage?chat_id=<채널>&text=<메시지>
예를 들어 BotFather에서 받은 토큰이 1234567890:EXAMPLE_TOKEN 이고, 채널 사용자 이름이 @example_department_notice 라면 다음과 같은 형태가 된다.
https://api.telegram.org/bot1234567890:EXAMPLE_TOKEN/sendMessage?chat_id=@example_department_notice&text=텔레그램 봇 테스트 메시지입니다
위 주소에서 토큰과 채널 이름을 자신의 정보로 변경한 뒤 브라우저 주소창에 입력한다.
정상적으로 설정됐다면 텔레그램 채널에 텔레그램 봇 테스트 메시지입니다 라는 글이 올라온다.

브라우저 화면에는 여러 정보가 표시되는데, 그중 "ok": true 가 보인다면 메시지 전송에 성공한 것이다.
테스트할 때 주의할 점
테스트 주소에는 Bot Token이 그대로 포함된다. 따라서 이 주소를 다른 사람에게 공유하거나 블로그에 그대로 올리면 안 된다. 화면을 캡처해서 블로그에 사용할 때도 반드시 토큰 부분을 가려야 한다.
간단한 동작 확인에는 편리한 방법이지만 실제 자동화 프로그램을 만들 때는 토큰을 코드에 직접 적기보다는 별도로 관리하는 것이 안전하다.
8. 메시지가 오지 않는다면?
주소를 입력했는데 채널에 메시지가 올라오지 않는다면 몇 가지를 확인해보면 된다.
먼저 봇이 해당 채널의 관리자로 등록되어 있는지 확인한다. 관리자로 등록돼 있더라도 메시지 게시 권한이 빠져 있지 않은지도 확인한다.
그리고 테스트 주소에 입력한
- Bot Token
- 채널 사용자 이름
에 오타가 없는지도 확인한다.
공개 채널을 사용하는 경우 채널 이름 앞에 @가 들어가 있는지도 확인한다. 예를 들면 다음과 같다. @example_department_notice 설정을 수정한 뒤 다시 테스트 메시지를 보내본다.
9. 정리
정리하면 전체 과정은 생각보다 단순하다.
BotFather 검색 → /newbot 입력 → 봇 이름 설정 → 사용자 이름 설정 → Token 발급 → 채널 생성 → 봇을 채널 관리자로 추가 → 테스트 메시지 전송
테스트 메시지까지 정상적으로 채널에 올라왔다면 텔레그램 봇과 채널 연결은 완료된 것이다. 이제 필요한 정보는 크게 두 가지다.
Bot Token과 채널 사용자 이름 이다.
BotFather에서 봇을 생성했을 때 받은 API Token과 공개 채널이라면 다음과 같은 형태로 사용할 수 있는 @example_department_notice 채널 사용자 이름이 두 가지를 이용하면 이후 Python이나 다른 자동화 서비스에서 원하는 메시지를 텔레그램 채널로 보낼 수 있다.
나는 이 방법을 이용해서 재학 중인 한양대학교 인공지능융합대학원 홈페이지 내 공지 사항 게시판에 새 글이 올라왔을 때 텔레그램 채널로 알려주는 용도로 쓰고 있다.
https://t.me/hanyang_gsai_notice
hanyang_gsai_notice
한양대학교 인공지능융합대학원 공지 새 글 알림 채
t.me