본문 바로가기

[근무일지] LV_intern

[Slack봇(슬랙봇) 만들기] Incoming Webhooks 이용_2021.09.09

 TODAY's GOAL 

평소 사용하는 메신저인 디스코드를 이용해 딥러닝 시 학습이 완료되면 알람을 보내주거나,

크롤링봇을 작동시킬 때 크롤링이 완료되면 혹은 예상치 못한 에러로 중단되면 알림을 보내주는

알림봇을 만들고자 합니다.


슬랙에서 만들 수 있는 봇은 Bots(상호작용하는 봇)과 Incoming Webhooks bots(일방적으로 메세지를 보내는 봇)이 있습니다. 두가지 모두 슬랙의 앱에서 쉽게 다운로드 받아 사용할 수 있으며 튜토리얼은 아래와 같습니다.

 

 

1. 먼저 슬랙에 새로운 채널을 만들고, 설정 및 관리의 앱관리에 들어가줍니다.

2. 검색창에 '수신 웹 후크' 또는 incomming webhooks를 검색하여 'slack에 추가' 버튼을 눌러주고, 채널을 선택해줍니다.

 

3.  웹후크 url은 본인 메모장과 같은 프라이빗한 곳에 복사하여두고, 봇의 이름과 아이콘을 지정합니다.

 

4. 아래와 같은 코드를 입력하여 실행시키면 슬랙에 메세지가 오는 것이 보입니다. 코드에 대한 자세한 설명은 사진 아래에서 이어서 하겠습니다.

 


import json
import requests
# 필요한 패키지를 import 해줍니다.
url = "<본인의 웹후크를 입력하세요>"
# 발급받은 웹후크 url을 입력해줍니다.
def bot(url, text, channel="일반", username="incoming-webhook"):
    payload = {
        "channel": channel,
        "username": username,
        "text": text,
    }

# 채널명과 앱의 이름을 올바르게 입력해줍니다.
    response = requests.post(url, json.dumps(payload))
    return response
# requests로 response 해줍니다.
bot(url, "블로그용 테스트 중입니다.")

# 선언된 함수를 이용해 원하는 메세지를 발신합니다.


5. 아래와 같이 정상적으로 메세지가 잘 온것을 볼 수 있습니다.

 


slack으로 알림봇을 만드는 방법은 여기까지 입니다. 다음 포스팅부터는 여러가지 시각화 예제를 다뤄보겠습니다.