본문 바로가기

파이썬

텔레그램 봇(Telegram Bot) 만들기 #2

이번 포스트부터는 본격적인 텔레그램 봇을 만드는 과정이 들어갑니다.

 

템포 잘 따라오세요


텔레그램 봇 ID 알아내기

텔레그램 봇을 만들면서 얻어낸 API Token 값을 사용할 때가 지금입니다.

 

 

1️⃣ url을 이용한 봇 ID 알아내기

 

발급받은 Token 값을 이용하여 아이디를 알아내는 방법은 아래와 같습니다.

아래의 링크를 이용하여 chat id를 얻어냅니다.

https://api.telegram.org/bot[Token 값]/getUpdates
 => [Token 값] 에 해당하는 부분에 얻어낸 토큰값을 집어넣습니다.

 

제대로 입력을 하신 뒤 주소창에 입력 후 접속하시게 되면 아래와 같은 결과를 얻을 수 있습니다.

제대로 접속 완료된 화면

 

만약 토큰값을 잘못 입력하셨다면 아래와 같은 화면을 보시게 됩니다.

토큰값을 잘못 입력한 경우

 

그래서 토큰값은 항상 제대로 적용을 해주셔야 합니다!!

현재까지는 봇으로 보낸 메시지가 없기 때문에 우리가 얻고자 하는 정보가 나오지 않는 것입니다.

 

이제 우리가 필요한 정보를 얻기 위해서 만들어놓은 봇에 메시지를 하나 보내줍니다.

저는 정말 간단한 "asd"를 입력해주었습니다.

 

메세지를 보낸 뒤 페이지를 새로고침(F5) 하게 되면 아래와 같은 결과물을 보실 수 있습니다.

메세지 보낸 뒤 새로고침 화면

 

여기서 보시게 되면 update_id, message... 등등의 많은 항목들이 있는데, 우리가 얻고자 하는 chat id는 빨간색 박스로 표시된 "id" : "---" 부분의 값입니다.

 

이제 제대로 값을 얻어냈는지 확인해보도록 하겠습니다.

봇이 사용자에게 메시지를 보내게 되면 제대로 토큰 값과 아이디를 구해낸 것이라고 판단해주도록 합시다.

 

웹 브라우저로 메세지를 보내는 법

https://api.telegram.org/bot[나의 봇 토큰]/sendmessage?chat_id=[방금 구한 id 값]&text=[보낼 메세지]

 

저는 간단하게 인사를 보내보았습니다.

 

텔레그램 봇의 메세지

제대로 구현이 되었네요!


2️⃣ 코드로 확인하기

 

우선 코드로 확인하기 위해서는 python-telegram-bot 모듈을 설치해 주어야 합니다.

 

[vscode]
pip install python-telegram-bot
또는,
pip install python-telegram-bot --upgrade

[pycharm]

1. Ctrl+Alt+s 를 눌러 설정창을 켜줍니다.
2. Project:[내 프로젝트명] - Python Interpreter 클릭
3. '+' 버튼 or Alt + insert 를 눌러서 패키지명을 검색한다.
4. Install

 

제대로 설치가 되었다면 아래와 같은 코드를 작성해주시면 됩니다.

 

import telegram

my_token = '발급받은 API Token 값'
bot = telegram.Bot(token=my_token)
updates = bot.getUpdates()

for i in updates:
	print(i.message)

 

이제 코드를 실행시키게 되면 아래와 같은 결과값을 얻을 수 있습니다.

만약, 실행결과가 나오지 않는다면 봇에 메시지를 다시 한번 보낸 뒤 실행시켜주시면 됩니다.

실행결과

 

간단하게 위의 정보에 대한 내용 설명하겠습니다.

    ❗ 'message_id' : 1004 = 1004번째 메시지

    ❗ 'date' : 1644570490 = 메시지가 보내진 시간

    ❗ 'id' : ???? = 사용자 대화 id

    ❗ 'type' : 'private' = 개인의 채팅

    ❗ 'first_name', 'last_name' : ?? = 사용자의 이름

 

 

이제 봇으로 메시지를 보내기 위한 코드 작성입니다.

봇이 사용자에게 메시지를 보내기 위해서는 sendMessage 함수를 써주시면 됩니다.

import telegram

token = "사용자 API Token"
id = "Chat ID값"

bot = telegram.Bot(token)
bot.sendMessage(chat_id = id, text="테스트메세지")

테스트 메세지 출력완료

자 이제 텔레그램 봇을 구현하기 위한 기초단계는 완료가 되었습니다.

 

다음 게시글부터는 주식 챗봇을 만들기 위한 초석을 닦는 '크롤링'에 대해서 업로드하도록 하겠습니다.

'파이썬' 카테고리의 다른 글

텔레그램 봇(Telegram Bot) 만들기 #1  (0) 2022.01.27
3. 파이썬 개발환경(vscode)  (0) 2022.01.24
2. 파이썬 개발환경(파이참)  (0) 2022.01.22
1. 파이썬의 소개와 설치방법  (0) 2022.01.21