ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 챗GPT 도움으로 텔레그램에 이미지 파일 보내기 파이썬 코드 작성
    IT 2023. 6. 12. 00:56
    반응형

    구글링한 코드로는 계속 오류가 발생하여, 챗GPT에 여러 차례 문의하여 최종 오류없이 보내진 코드입니다.

    텔레그램 라이브러리를 사용하지 않고, 파이썬 기본 라이브러리와 api 주소만 잘 활용해서 텔레그램에 이미지를 보냅니다.

    import os
    import requests
    
    # 텔레그램 봇 토큰(Token)을 입력하세요.
    bot_token = "YOUR_BOT_TOKEN"
    
    # 텔레그램 채팅 ID를 입력하세요.
    chat_id = "YOUR_CHAT_ID"
    
    # 이미지 파일 경로를 입력하세요.
    image_path = "YOUR_IMAGE_PATH"
    
    # 이미지 열기
    with open(image_path, "rb") as image_file:
        # 텔레그램 API 엔드포인트 URL
        url = f"https://api.telegram.org/bot{bot_token}/sendPhoto"
    
        # 요청 파라미터 설정
        params = {"chat_id": chat_id}
    
        # 이미지 파일 데이터 전송
        files = {"photo": image_file}
        response = requests.post(url, params=params, files=files)
    
    # 응답 결과 확인
    if response.status_code == 200:
        print("이미지 전송이 완료되었습니다.")
    else:
        print("이미지 전송에 실패하였습니다. 상태 코드:", response.status_code)
        
        
    # 챗GPT 설명
    위의 코드에서는 requests 라이브러리를 사용하여 
    텔레그램 API에 POST 요청을 보내는 방식으로 이미지를 전송합니다. 
    요청 URL은 https://api.telegram.org/bot{bot_token}/sendPhoto로 설정하고, 
    요청 파라미터로 chat_id를 지정하여 메시지를 보낼 채팅 ID를 설정합니다. 
    이미지 파일은 files 파라미터를 통해 전송합니다.
    
    이 방법을 사용하면 이미지가 텔레그램으로 전송될 것입니다. 
    이전에 발생한 오류를 우회하여 문제를 해결하기 위해 다른 방법을 시도해보시기 바랍니다. 
    죄송합니다.

     

    아래는 챗GPT가 처음에 제시한 코드입니다. 구글링 결과와 비슷한 코드이며 동일한 루프 에러가 계속 발생합니다.

    RuntimeError: This event loop is already running

    챗GPT에 에러 내용을 알려주니 조금씩 개선된 코드를 제안하다가 결국 위와 같이 최종 오류가 없는 코드를 찾아서 알려줬습니다.

    import os
    from telegram import Bot
    
    # 텔레그램 봇 토큰(Token)을 입력하세요.
    bot_token = "YOUR_BOT_TOKEN"
    
    # 텔레그램 채팅 ID를 입력하세요.
    chat_id = "YOUR_CHAT_ID"
    
    # 이미지 파일 경로를 입력하세요.
    image_path = "YOUR_IMAGE_PATH"
    
    # 텔레그램 봇 객체 생성
    bot = Bot(token=bot_token)
    
    # 이미지 보내기
    with open(image_path, "rb") as image_file:
        bot.send_photo(chat_id=chat_id, photo=image_file)
    
    # 성공 메시지 출력
    print("이미지 전송이 완료되었습니다.")

    챗GPT가 사과는 참 열심히 잘 합니다.

    "죄송합니다. 혼란을 드려 죄송합니다.

    Jupyter Notebook과 같은 환경에서는 이벤트 루프를 다루는 방식이 다소 복잡합니다.

    이러한 경우, asyncio.run() 함수를 사용하여 코드를 실행하는 것이 더 간단하고 안정적입니다."

    728x90
    반응형
Designed by Tistory.