티스토리 뷰

반응형

파이썬 프로그램에서 텔레그램 알람을 보내는 기능을 달아두면 편리하겠죠.

1. 텔레그램 다운로드   : 핸드폰에서 하려면 힘드니 pc에서 텔레그램 pc용을 다운받으세요. 

 

텔레그램 다운로드

 

텔레그램 무설치 버전도 있으니 원하시는걸로 설치 

다운받은 후 텔레그램 실행하면 qr 코드가 보이는데 핸드폰의 텔레그램  앱 -> 설정 -> 기기 -> 데스크탑 연결

그리고 나서 텔레그램 봇을 만들어줍니다. 이 봇의 역할은 api를 통해서 파이선에서 메세지를 보내주면 그것을 채팅창에 보여주는 역할을 하는 것입니다. 물론 봇이 채팅방의 글을 읽는 역할도 할 수 있습니다.

 

 

공인된 botfather 로 들어가서 대화를 해줍니다. 봇 만드는 채팅방이라 생각하심됩니다. 

들어가면 주르륵 사용 명령어 매뉴얼이 보입니다.

봇이름 정하라고 나옵니다. 이다음에는 봇 아이디 정하라고 나옵니다. 봇아이디는 bot가 필히 들어가야합니다

위에서 http api:  아랫줄의 토큰값을 복사합니다. 클릭하면 자동복사됩니다.

저게 텔레그램봇의 토큰값입니다. 

@방금만든user_id 

로 검색해보면 내가만든 봇이 나옵니다 들어가주면 봇이 켜지기 시작합니다.

이제 새로운 채널을 만든후에 관리자추가로  봇을 불러옵니다.

 

https://api.telegram.org/bot{토큰값}/getUpdates 

이런식으로 토큰값을 bot뒤에 바로붙여주면 됩니다.

그러면 위처럼 맨마지막 대화 관련된 정보가 나옵니다 저기서 chat['id'] 값이 채널방의 id값입니다. 

물론 채널방에서 메세지를 pc에서 아무거나 보내보내요 그럼 봇이 채널방 최종 메세지를 감지할겁니다.

그럼 지금 토큰값과 채널 id값 2개를 알게되었네요. 

이럼 이걸 메세지로 보내는 파이썬 코드를 간단하게 짜보겠습니다. 라이브러리까진 필요없고 request로 만들어보겠습니다.

import requests

def send_telegram_message(chat_id, token, text):
    url = f"https://api.telegram.org/bot{token}/sendMessage"
    params = {
        "chat_id": chat_id,
        "text": text
    }

    try:
        response = requests.post(url, data=params)
        response.raise_for_status()  # 에러 발생 시 예외 처리
        print("메시지가 성공적으로 전송되었습니다.")
    except requests.exceptions.RequestException as e:
        print("메시지 전송 중 오류가 발생했습니다:", e)

# 사용 예시
chat_id = -1000000000
token = "77777777:AAAAAAAAAAAAAAAAAAAAAAAAAAAA"
message_text = "안녕하세요, 텔레그램으로 메시지를 보내는 테스트 중입니다."
send_telegram_message(chat_id, token, message_text)

프로그램이 작동하는 곳에서 에러 처리관련 부분에 적당히 넣어주면 된다.

보통 except로 에러처리하는 부분에서 뒤에 넣어주면 된다. 세분화 할수록 프로그램이 종료냐 , 업로드에러냐, 수집에러냐, 연결에러냐 등등 구별해서 알람이 오겠지만 

def function_with_possible_errors():
    # 여기에 사용자가 원하는 작업 수행
    # 예를 들어, 파일을 열거나 API 호출을 수행하는 코드 등을 포함할 수 있습니다.
    # 이 코드에서는 예시로 0으로 나누는 연산을 수행하고 에러를 발생시킵니다.
    try:
        result = 1 / 0  # 이 부분에서 ZeroDivisionError가 발생합니다.
    except ZeroDivisionError as e:
        # 에러가 발생했을 때 텔레그램으로 에러 메시지 전송
        error_message = f"에러가 발생했습니다: {e}"
        send_telegram_message(chat_id, token, error_message)

 

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함