본문 바로가기

기타

[Slack] curl로 slack 알림 연동 시, 변수 사용하기

슬랙 알림을 연동하는 방법을 먼저 소개한다.

 

방법 1.

슬랙 → 워크 스페이스 → 채널 추가 → 채널 생성 → https://api.slack.com/apps/ 접속 → App 생성 → 생성한 App 클릭 → Features/Incomming Webhooks → Add new webhook to Workspace → 생성한 채널 선택 후 생성 → 생성된 webhook URL 복사

 

방법 2.

Incoming plugin 사용하여 하는 방법

 

왕초보를 위한 Slack webHooks 사용법(incoming webhooks)

안녕하세요 :) 오늘은 외부에서 Slack(이하 슬랙)에 메세지를 보내는 방법을 알아볼거에요 :) 정말 과정 하나하나 같이 해볼거니까, 차근차근 따라하시면 슬랙에 메세지가 뿅 하고 뜰거에요 XD 그

zeddios.tistory.com

 

위 방법을 통해 Webhook URL 까지 얻었다면, 이제 알림을 전송하는 스크립트를 생성할텐데,

쉘스크립트를 통해 수행 시, curl로 api call을 할 것이다.

 

curl로 api 호출 시, 변수를 사용하는 방법을 설명한다.

먼저, curl을 사용하여 api call을 하는 기본적인 구조는 아래와 같다. (Centos 7에서 실행 기준)

#!/bin/bash

SLACKURL=<위에서 얻은 WebhookURL>

curl -H 'Content-type: application/json' --data '{"text":"<전송 할 Message>"}' $SLACKURL

 

저기서 text의 value값으로 간단한 스크립트의 경우에는 String을 넣어도 되지만,

만약 변수를 value로 넣고 싶다면 아래처럼 하면된다.

#!/bin/bash

SLACKURL=<위에서 얻은 WebhookURL>

msg="Test"

curl -H 'Content-type: application/json' --data '{"text":"'$msg'"}' $SLACKURL

 

다른 방법으로, alert를 함수화하여 사용하려한다면, 조금 Value를 넣는 법이 좀 달라진다.

#!/bin/bash

SLACKURL=<위에서 얻은 WebhookURL>

alert(){
    msg=$@
    curl -H 'Content-type: application/json' --data '{"text":"'"$msg"'"}' $SLACKURL    
}

alert "Test"

 

그냥 curl을 호출했을 때와 다르게 $msg를 "로 한번더 묶어줘야 한다.

묶어주지 않고, 그냥 curl을 호출했을때와 동일하게 하면 invalid_payload 에러가 발생하며 전송이 되지 않는다.

반응형

'기타' 카테고리의 다른 글

[Git] Initial Commit 되돌리기  (0) 2022.05.14
소프트웨어 라이센스 정리  (0) 2021.10.12
[Git] stash clear 복구 하기  (0) 2021.03.02
ubuntu wireshark 3.2 version 설치  (0) 2020.05.05
Unresolved reference: ext  (0) 2020.04.18