에러가 난 상황은요?
Python - telegram 연결 도중에 해당 오류가 발생했습니다. 에러 내용을 확인해 보니 코루틴과 await가 있는 것을 보니 비동기 관련 문제인 듯했습니다.
어떻게 해결 하셨죠?
해당 API관련 문서를 ㅊ앚아보니 해당 오류는 2022 말에 telegram bot API update로 asyncio 도입으로 생기는 오류인 것을 확인했습니다. 따라서 예전에 있던 코드를 그대로 사용하고자 하시는 분들은 telemgarm library 이전 버전으로 맞춰서 진행한다면 문제없이 진행할 수 있을 듯 합니다.
- python-telegram-bot: v20.0
- asyncio: v3.4.3
만약에 그냥 업데이트된 상태로 코드를 작성하고 싶다면 아래 방법을 참조해주세요
- 메시지를 보내는 방의 아이디인 chat_id을 가져와야 할 알아봐야 할 상황이라고 가정합니다.
해당 상황에서는 텔레그램 방에 메시지를 보낸 후, https://api.telegram.org/bot [ telegram http_api_token ]/getUpdates에서 chat_id을 확인 하실 수 있습니다.
* 참고로 여기서 [ telegram http_api_token ] 은 텔레그램 봇에서 받은 API_KEY을 의미합니다.
- 메시지를 채팅방에 보내야 할 경우에는 아래 코드와 같이 작성하여 사용할 수 있습니다.
import asyncio
async def send_message(message: str):
"""
chat_id 는 https://api.telegram.org/bot[telegram http_api_token]]/getUpdates 으로 확인 가능
"""
bot: str = telegram.Bot(token=os.getenv("HTTP_API"))
chat_id: int = os.getenv("CHAT_ID")
await bot.send_message(chat_id, message)
asyncio.run(send_message("안녕하세요"))
해당 코드를 실행하게 되면 chat_id에 등록해 둔 텔래그램 방으로 "안녕하세요"라는 문자가 전송되어 있는 것을 확인할 수 있습니다.
'Programing Language > Python' 카테고리의 다른 글
Pyinstaller을 통해 py 파일을 각 OS에 맞는 실행 파일로 변환 (0) | 2023.07.06 |
---|---|
Selenium 옵션과 이벤트 처리 코드 모음 (0) | 2023.07.04 |
키값이나 환경변수를 관리하기 (0) | 2023.06.29 |
컬렉션 객체의 내장 함수 시간 복잡도 모음 (0) | 2023.06.29 |
파이썬 파일 실행 할 때 생기는 __pycache__ 파일에 대해 알아보기 (0) | 2023.06.29 |