본문 바로가기
Programming/Python

[Python] 텔레그램 API 발급 및 파이썬 환경 구축

by 코딩하는 금융인 2024. 1. 22.

안녕하세요.

자주 보는 지표나 데일리 뉴스들을 자동으로 가져오는 텔레그램 봇을 파이썬으로 만들어보는게 올해 저의 목표 프로젝트 중 하나인데요. 오늘은 그 시작이라고 볼 수 있는 텔레그램 API 발급 및 파이썬 환경 구축 관련하여 포스팅해보겠습니다.

 

 텔레그램 API 발급 및 파이썬 환경 구축하기

▣ 텔레그램 API란?

텔레그램 메신저와 상호작용할 수 있는 인터페이스

 

 - 먼저, 텔레그램 봇을 만들기 위해서는 텔레그램에서 제공하는 BotFather를 이용해야함 (텔레그램 공식 필수)

 - 텔레그램에서 BotFather를 검색한 후, 새로운 봇을 만들고 API Token을 발급 받아야함

   (텔레그램 BotFather → /newbot → name 설정 → API Token 발급)

Telegram BotFather

 - 발급 받은 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())

 

 

telegram 봇 결과

 

 

 

반응형

댓글