개발
[개발] 간단하게 Python에서 Telegram API 통해 메세지 보내기
성민석
2024. 2. 25. 02:54
안녕하세요 성민석입니다.
트레이딩을 하다보면 주로 텔레그램(Telegram) API을 이용하여 로그 메세지를 간단하게 보내곤 합니다.
근데 매번 python-telegram-bot 을 이용해서 사용하다가 이번 20버전부터는 비동기식으로 바뀌어서 (물론 13버전 쓰면 괜찮) 간략하게 requests 라이브러리 이용해서 텍스트와 이미지 전송하는 코드를 첨부해보겠습니다.
https://pypi.org/project/python-telegram-bot/
python-telegram-bot
We have made you a wrapper you can't refuse
pypi.org
텍스트를 보내는 함수
def send_telegram_text(text, bot_token, chat_id):
"""Telegram을 통해 메시지를 보내는 함수"""
url = f"https://api.telegram.org/bot{bot_token}/sendMessage"
data = {
"chat_id": chat_id,
"text": text
}
response = requests.post(url, data=data)
return response.json()
이미지를 보내는 함수
def send_telegram_image(photo_path, bot_token, chat_id):
"""Telegram을 통해 사진을 보내는 함수"""
url = f"https://api.telegram.org/bot{bot_token}/sendPhoto"
data = {
"chat_id": chat_id
}
with open(photo_path, 'rb') as photo:
files = {
"photo": photo
}
response = requests.post(url, data=data, files=files)
return response.json()
위 두 함수를 이용하면 굳이 번거롭게 라이브러리 설치하지 않고 가볍고 간단하게 사용할 수 있습니다. 다만 텔레그램 서버로부터 연결이 끊기는 ConnectionError 같은 부분은 직접 수고스럽게 예외처리 좀 하면 됩니다.
P.S) 또한 제일 귀찮은게 저 chat_id를 알아내는건데 그건 아래 링크에 본인의 토큰을 입력해서 확인하면 됩니다. 일반적으로 593161392를 이용하면 본인이 생성한 봇의 채팅방 아이디일 확률이 높습니다.아래 괄호 지우고 본인 봇의 토큰을 입력하면 확인 가능합니다.
https://api.telegram.org/bot{본인의토큰}/getUpdates
728x90
반응형