본문 바로가기

카테고리 없음

Slack webHooks 1분만에 만들기 (+ 코드 실행 완료 알림받기)

실행이 오래 걸리는 코드의 완료 알림, 백그라운드에서 뭔가 돌아가고 있고 로그를 받고싶을 때?? 

이메일은 텀이 생기고 거추장스럽고 카톡 메세지로 받으면 빠르게 반응할 수 있겠지만 만들기 귀찮다...

슬랙을 이용하면 굉장히 빠르고 쉽게 나에게 메세지를 보낼 수 있다!!

저어어엉말 간단하다. 여러명 있는 슬랙 채널에도, 내 개인 채널에도 메세지를 받을 수 있다.

 

Slack webHooks 1분만에 만들기

1. 슬랙 계정을 미리 생성해둔다.

2. 슬랙 웹으로 들어가 Incoming WebHooks를 검색하고 Add to Slack을 클릭한다.

3. 메세지를 받을 채널을 선택한다.

4. URL과 함께 예제와 사용방법이 나와있다.

5. 바로 아까 설정한 채널에 터미널 커맨드를 통해 메세지를 보낼 수 있다. 바로 채널 알림이 울린다!!

$ curl -s -d "payload={\"text\":\"메세지 내용~~ \"}" "webHook URL"

 

 

 


이 간단한 알림 봇을 이용해 보자. 

1. 커맨드라인에서 바로 이용하기.

터미널 창에서 오래 걸리는 스크립트를 실행하는 명령어에 이어서 ";"세미콜론 뒤에 위에서 봤던 메세지 전송 커맨드를 적으면 끝!
스크립트의 성공 여부와 상관 없이 메세지를 보내온다.

 

2. 빠르게 소스코드에 한줄 추가하기.

원하는 시점에 원하는 내용의 메세지 전송 가능!

 

import os

try:    
	pass
except:
	os.system("curl -s -d "payload={\"text\":\" \"}" "webHook URL"")

 

3. 모듈로 만들어 편하게 사용하기.

다른 python 파일에서 send_msg 함수를 임포트해서 인자값으로 메세지 내용을 전달하면서 사용.
또는 커맨드 창에서도 메세지 내용을 인자값으로 받아 다양한 메세지 보내기 가능.

import requests
import argparse


def parse_args():
    parser = argparse.ArgumentParser(description='Send slack message')
    parser.add_argument('text', help='message text')
    args = parser.parse_args()
    return args

def send_msg(text):
    url = "https://hooks.slack.com/services/"
    text = "get empty text"
    payload = {
        "text": text
    }
    requests.post(url, json=payload)
    
def main(args):
    send_msg(arts.text)


if __name__ == "__main__":
    args = parse_args()
    main(args)