본문 바로가기

앱/telegram

[python] 텔레그램 API를 이용하여 전송한 메세지 수정하기

이 문서는 2024년 4월 27일에 작성되었습니다.

목표

Python을 이용하여 Telegram에서 메세지를 보내고 수정하는 방법에 대해 알아보겠습니다. 이를 위해 requests 라이브러리와 Telegram API를 사용합니다.

목차

  1. requests 라이브러리 설치
  2. sendMessage 함수 사용
  3. editMessageText 함수 사용
  4. Python으로 Telegram 메세지 전송, 수정 전체 소스

상세

1. requests 라이브러리 설치: 이 라이브러리는 Python에서 HTTP 요청을 처리하는데 필요합니다. 이를 설치하려면 터미널에서 pip install requests 명령을 실행해주세요.

pip install requests

2. sendMessage 함수 : 이 함수는 Telegram API의 일부로, 메세지를 보내는 역할을 합니다. token, chat_id, 그리고 text를 인자로 받아 작동합니다.

- token : 봇의 키정보

- chat_id : 메세지를 보낼 상대의 ID 정보

- text : 상대에게 보낼 메세지 

# 기본 텔레그램 API호출 URL 변환
def get_default_telegram_api_url(token) -> str:
    return f'https://api.telegram.org/bot{token}/'

# 메세지 전송 함수
def send_message(token, chat_id, text):
    url = get_default_telegram_api_url(token) + 'sendMessage'
    data = {'chat_id': chat_id, 'text': text}
    return requests.post(url, data=data)

3. editMessageText 함수 : 이 함수 역시 Telegram API의 일부로, 보낸 메세지를 수정하는 역할을 합니다. token, chat_id, text, 그리고 message_id를 인자로 받아 작동합니다.

- token : 봇의 키정보

- chat_id : 메세지를 보낼 상대의 ID 정보

- text : 변경할 텍스트 정보

- message_id : sendMessage로 보낸 후 결과를 받은 정보 중 메세지 아이디

# 기본 텔레그램 API호출 URL 변환
def get_default_telegram_api_url(token) -> str:
    return f'https://api.telegram.org/bot{token}/'

# 메세지 수정 함수
def edit_message_text(token, message_id, chat_id, text):
    url = get_default_telegram_api_url(token) + 'editMessageText'
    data = {'chat_id': chat_id, 'text': text, 'message_id': message_id}
    return requests.post(url, data=data)

 

4. Python으로 Telegram 메세지 전송, 수정 전체 소스

import time

import requests


def get_default_telegram_api_url(token) -> str:
    return f'https://api.telegram.org/bot{token}/'


# 메세지 전송 함수
def send_message(token, chat_id, text):
    url = get_default_telegram_api_url(token) + 'sendMessage'
    data = {'chat_id': chat_id, 'text': text}
    return requests.post(url, data=data)


# 메세지 수정 함수
def edit_message_text(token, message_id, chat_id, text):
    url = get_default_telegram_api_url(token) + 'editMessageText'
    data = {'chat_id': chat_id, 'text': text, 'message_id': message_id}
    return requests.post(url, data=data)


token = 'YOUR_BOT_TOKEN'
chat_id = 'YOUR_CHAT_ID'

response = send_message(token, chat_id, 'Hello, Telegram!')
json = response.json()
print(f"메세지 전송 결과 \n{json}")
if json['ok'] is True:
    result = json['result']
    # 5초후 메세지 수정
    time.sleep(5)
    response = edit_message_text(token, result['message_id'], chat_id, "보낸 메세지 수정")
else:
    print("메세지 전송을 실패하였습니다.")

결과 화면

실행후

메세지 전송 화면

실행후 5초뒤

메세지 수정 화면

결론

Python을 이용하여 Telegram에서 메세지를 보내고 수정하는 방법을 알아보았습니다. 이 방법을 통해 Telegram 메세지를 보내고 수정하는 다양한 스크립트를 만들 수 있습니다. Telegram API는 이 외에도 다양한 기능을 제공하므로, 여러분도 한번 시도해 보시기 바랍니다.