[Python] 텔레그램 챗봇(Chat Bot) 만드는 방법

텔레그램 챗봇 만들기 – 파이썬을 활용한 간단한 가이드

 

 

Bot API
Bot API

 

 

메신저 프로그램 중 텔레그램이란 메신저를 한 번쯤 들어보셨을 텐데요. 이 텔레그램 메신저에서는 여러 API를 제공하고 있는데, 그중 Bot API을 이용하면 텔레그램에서 챗봇을 비교적 만들기 쉽게 만들어 볼 수 있습니다.

 

이번 포스팅에서는 새로운 챗봇의 생성을 요청하는 방법과 파이썬 코드를 이용하여 새로 만들어진 봇을 어떻게 챗봇으로 만드는지에 관한 방법을 다뤄보려고 합니다.

 

 

 

1. 새로운 챗봇 생성하기

 

 

봇파더 검색
봇파더 검색

 

 

먼저, 텔레그램 앱을 설치한 후 ‘BotFather’라고 검색하여 공식 계정을 눌러줍니다. 유사한 계정이 여러 개 뜨는데요. 체크표시가 된 봇파더를 눌러줍니다.

BotFather 채팅방에 들어가면 다양한 명령어를 사용할 수 있습니다. ‘/help’ 명령어를 입력하시면 사용 가능한 명령어 리스트를 확인할 수 있습니다.

 

 

help 명령어 입력시
help 명령어 입력 시

 

 

이 명령어들 중에서 저희는 챗봇을 생성하기 위해 ‘/newbot’ 명령어를 사용하면 되겠습니다. 봇파더와의 채팅방에서 ‘/newbot’를 입력해 줍니다.

 

 

newbot 명령어 입력
newbot 명령어 입력

 

 

newbot 명령어를 입력하면 봇의 이름을 입력하라고 하는데요 적당한 이름을 입력해 주시면 됩니다. 봇의 이름을 입력하면 봇의 유저네임(username)을 입력하라고 하는데요. 예시처럼 끝에 ‘bot’이라는 단어로 끝나야 합니다. 이 이름도 역시 적당한 이름을 넣어줍니다.

 

 

API 토큰
API 토큰

 

 

이름들을 모두 입력하면 BotFather가 고유한 API 토큰을 알려주는데요. 나중에 파이썬 코드에서 사용해야 하니 복사해 두시면 됩니다.

 

 

 

2. 신규 챗봇 채팅방에 메시지 보내기

 

챗봇을 만들기 위해서는 Chat ID를 알아내야 하는데요. 우선, 방금 생성한 봇의 유저이름을 검색하여 해당 채팅방으로 들어갑니다.

 

 

챗봇 검색
챗봇 검색

 

 

채팅방에서 아무 말이나 입력을 해주시면 됩니다.

 

 

채팅방 메시지 입력
채팅방 메시지 입력

 

 

채팅방에 메시지를 보내셨다면 Chat ID를 알아낼 준비가 다 된 것입니다.

 

 

 

3. 파이썬 코드 작성 및 실행

 

Chat ID는 아래 파이썬 코드를 이용해 확인이 가능합니다. 먼저, 파이썬 코드를 작성하고 실행하기 위해서는 모듈이 두 개 필요한데요.

 

python-telegram-bot 모듈과 asyncio 모듈을 설치하셔야 코드를 작성할 수 있습니다. 아래 pip 명령어를 이용하여 설치를 진행하시면 됩니다.

 

 

pip install python-telegram-bot
pip install asyncio

 

 

설치가 완료되셨으면, 아래 코드를 작성하여 실행해 줍니다. 조금 전에 봇파더에게 받은 API 토큰 값을 아래 코드의 ‘토큰 값’이라고 되어있는 부분에 넣어 줍니다.

 

 

import asyncio
import telegram

token = '토큰 값'

async def main():
    bot = telegram.Bot(token)
    async with bot:
        print(await bot.get_me())


if __name__ == '__main__':
    asyncio.run(main())

 

 

이렇게 코드를 작성하고 실행하셨으면 아래 사진과 같이 Chat ID를 확인할 수 있습니다.

 

 

Chat ID 확인
Chat ID 확인

 

 

만약, Chat ID가 안보이신다면 다시 채팅방에 메시지를 입력하신 뒤 코드를 실행하시면 됩니다.

 

 

 

4. 파이썬 코드를 이용하여 채팅방에 메시지 보내기

 

Chat ID가 확인되셨다면 채팅방에 메시지를 보낼 준비는 완료된 것입니다.

 

 

import asyncio
import telegram

token = '토큰 값'
chat_id = 'Chat ID 값'

async def main():
    bot = telegram.Bot(token)
    async with bot:
        await bot.send_message(text='테스트 메세지', chat_id=chat_id)


if __name__ == '__main__':
    asyncio.run(main())

 

 

위의 코드에서 조금 전처럼 아래 코드에 ‘토근 값’이라고 되어있는 변수에 API 토근 값을, ‘Chat ID 값’이라고 되어있는 부분에 방금 알아낸 Chat ID값을 입력해 주시고 실행해 보시면, 메시지가 정상적으로 발송되는 것을 확인하실 수 있겠습니다.

 

 

메시지 확인
메시지 확인

 

 

이 이후에는 챗봇 기능을 구현하는 코드를 작성하여 챗봇을 이용하시면 되겠습니다. 텔레그램 채팅방에서 메시지를 다루는 방법을 확인하고 싶으시다면 이 링크를 통해 코드 작성방법을 확인해 보실 수 있습니다.

 

 

 

마무리…

 

이번 포스팅에서는 텔레그램의 챗봇을 새로 생성해 보고 해당 챗봇의 채팅방에 파이썬 코드를 활용하여 메시지를 전송해 보는 방법을 알아보았는데요. 텔레그램 챗봇을 새로 만들어 활용해 보시려는 분들께 도움이 되었으면 합니다.

 

텔레그램의 챗봇은 만들기 쉽도록 API를 제공해주고 있고, 챗봇에 여러 가지 기능들도 있어서 활용범위가 다양해 보입니다. (뉴스봇, 각종 알림봇, 공지사항 전달 봇 등)

 

이번 포스팅은 여기서 마무리하도록 하겠습니다.

 

감사합니다!

 

 

댓글 남기기