안녕하세요.
자주 보는 지표나 데일리 뉴스들을 자동으로 가져오는 텔레그램 봇을 파이썬으로 만들어보는게 올해 저의 목표 프로젝트 중 하나인데요. 오늘은 그 시작이라고 볼 수 있는 텔레그램 API 발급 및 파이썬 환경 구축 관련하여 포스팅해보겠습니다.
텔레그램 API 발급 및 파이썬 환경 구축하기
▣ 텔레그램 API란?
텔레그램 메신저와 상호작용할 수 있는 인터페이스
- 먼저, 텔레그램 봇을 만들기 위해서는 텔레그램에서 제공하는 BotFather를 이용해야함 (텔레그램 공식 필수)
- 텔레그램에서 BotFather를 검색한 후, 새로운 봇을 만들고 API Token을 발급 받아야함
(텔레그램 BotFather → /newbot → name 설정 → API Token 발급)
- 발급 받은 API Key는 X:Y 형식으로, 해당 키 값을 주소 : https://api.telegram.org/botX:Y/getUpdates 에 넣어서 chat_id를 확인해야 함
- 생성된 텔레그램 봇(coding_finance)에 /start와 같은 아무 메시지를 입력하고 API Key 값을 입력한 주소로 들어가면, chat_id를 확인할 수 있음("id" 값)
{"ok":true,"result":[{"update_id": ???, "message":{"message_id":3,"from":{"id":????,"is_bot":false,"first_name":"\uc2b9\ud6c8","language_code":"ko"},"chat":{"id":????,"first_name":"\uc2b9\ud6c8","type":"private"},"date":1705849347,"text":"/start","entities":[{"offset":0,"length":6,"type":"bot_command"}]}}]}
▣ 파이썬 환경 구축하기
pip install python-telegram-bot
- 파이썬 환경에서는 python-telegram-bot 패키지의 telegram 모듈 & asyncio 모듈을 활용하며, 발급 받은 API token과 chat id를 telegram.Bot에 넣으면 됨
- telegram 모듈에서 메시지를 보낼 때는 꼭 함수에 async를 붙여줘야 하며, await 타입으로 명령을 작성해야 전송됨
(telegram API 방식이 바뀌어져서 async & await 필수)
import telegram
import asyncio
async def main():
bot = telegram.Bot(token='API Key')
await bot.send_message(chat_id="chat_id", text="hello world")
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
asyncio.run(main())

'Programming > Python' 카테고리의 다른 글
[Python] 날짜 비교 및 차이 구하기 (8) | 2024.01.29 |
---|---|
[Python] 파이썬 count 활용 및 예시 (value_counts) (0) | 2024.01.28 |
[Python] fileinput 파일 수정하기 (0) | 2024.01.21 |
[Python] 상관분석 (산점도, 상관계수, 검정) (1) | 2024.01.05 |
[Python] fnmatch 폴더 및 파일명 찾기 (2) | 2024.01.02 |
댓글