본문 바로가기
Engineering/Python

[python] 텔레그램 bot 만들기

by SPICA910 2022. 7. 8.
반응형

편리한 python 생활을 위해 BOT을 만들기로 했습니다. 

 

BOT(봇)이란 특정한 작업을 수행하기 위해서 만들어놓은 응용소프트웨어이며 채팅 프로그램을 통해 대화형으로 동작을 시킬수 있습니다. 

오늘은 텔레그램에 대화방을 만들고 프로그램이 돌아가면서 텔레그램 대화방으로 환율정보를 가져오도록 하고자 합니다. 

이후에는 모든 프로그램에 bot을 연동하여 필요한 정보를 실시간으로 가져올수 있도록 해볼 예정입니다.

 

텔레그램은 BOT을 생성/관리할수 있도록 API를 제공합니다. 

https://core.telegram.org/bots/api

 

Telegram Bot API

The Bot API is an HTTP-based interface created for developers keen on building bots for Telegram. To learn how to create…

core.telegram.org

 

휴대폰을 가서 텔레그램을 설치하고 가입을 합니다. 

가입이 완료되면 첫화면에 돋보기를 눌러 BotFather를 찾아봅니다. 

하단의 시작을 누르면 BOT에 대한 설명이 나옵니다. 

BotFather가 새로운 봇을 만드는 방법과 Bot을 설정하는 방법을 알려주십니다. ^__^*

/newbot으로 bot을 만들어 봅니다. 

그럼 차례대로 2가지 질문을 받습니다. 

1. BOT의 이름을 정하세요.

2. BOT의 USER NAME을 정하세요.(단, 마지막에 "BOT"으로 끝나야 합니다.)

두가지 이름을 입력하면 BOT 생성이 완료됩니다. 

여기서 중요한 것은 BOT TOKEN입니다. 이 TOKEN은 꼭 따로 저장해 놓으세요.(저는 카톡에 따로 저장하겠습니다.)

위의 그림에서 붉은 상자안에 있는 링크를 클릭하면 대화방이 생성된 것을 볼수 있습니다.

여기서 꼭 시작을 먼저 눌러주세요. 그리고 아무 문자나 하나 먼저 보내보세요.(4글자 이상 추천)

이제 대화를 하기 위해서 chat_ID 값을 받아야 합니다. 

아래 주소를 복사하고 [bot token]에 조금전 받은 주소를 입력하고 web browser에서 접속해 봅니다.

https://api.telegram.org/bot[토큰값]/getUpdates

ex) https://api.telegram.org/bot55~~~tpk/getUpdate

그러면 아래와 같이 값이 올라옵니다. 

여기서 chat ID를 확인 합니다. 

저는 5xxxxxx416번입니다.

 

이제 Python으로 와서 text를 보내는 코드를 추가 합니다. 

파이썬에서 telegram bot을 사용하기 위해서는 python-telegram-bot 라이브러리를 설치하여야 합니다.

pip install python-telegram-bot

https://python-telegram-bot.org/

 

python-telegram-bot

A Python framework for the Telegram Bot API

python-telegram-bot.org

import telegram

bot = telegram.Bot(token='[TOKEN값]')
chat_id = [CHAT_ID값]

bot.sendMessage(chat_id=chat_id, text="MESSAGE")

이로써! python으로 문자 메세지를 받을수 있는 준비가 완료되었습니다. 

일정 시간 주기로 환율을 가져오는 동작도 테스트 해봤는데 정상적으로 잘 되는것을 확인하였습니다. 

 

BOT을 이용하여 효율적인 작업에 도움이 되시길 바랍니다.

 

**** update

7.17  BOT을 하나 더 만들어봤는데 Chat_ID는 동일하게 나오네요. 

         BOT TOKEN만 잘 저장하시면 될것 같습니다. 

 

**** update 

23.01.27    이번에는 채널에 BOT을 연결하여 정해진 시간에 공지를 할수 있도록 만들었습니다. 

                 채널에 봇을 연결하는 방법은 아래 링크를 참조하세요. 

https://spica910.tistory.com/240

 

[python] 텔레그램봇을 채널에 넣어 알림 보내기

만들어 놓은 텔레그램봇을 채널에 입장시키고 알림을 보내도록 하겠습니다. 우선 텔레그램 봇을 만들지 않았다면 우선 아래 링크를 통해 BOT을 만들고 다시 돌아오세요. https://spica910.tistory.com/172

spica910.tistory.com

공지방으로 운영하는 채널은 IndexBriefing 입니다. 

IndexBriefing 이 동작하는 모습이나 제공하는 정보에 관심이 있으시다면 채널 추가 해주세요.

https://t.me/indexbriefing

 

Index Briefing

금융관련 정보 모니터링 툴입니다.

t.me

indexbriefing 채널에 대한 설명 및 소통창구 입니다. 

https://spica910.tistory.com/241

 

[IndexBriefing] Telegram 채널 운영 방안

매일매일 바뀌고 있는 국제 시장의 흐름을 알고 싶은데 지표 하나씩 찾아볼 엄두도 안나고... 무얼 의미하는지도 알기 어렵습니다. 저도 아직 열심히 배우고 있는 단계이므로 무얼봐야 할지 고

spica910.tistory.com

 

 

 

 

반응형

댓글