Microsoft Teams Webhook으로 채널에 메시지 보내기
현재 회사에서는 커뮤니케이션 도구로 Slack
을 쓰고 있었지만 보안 이슈가 있어서 Microsoft
의 Teams
를 사용하게 되었다.
기존에는 Slack
의 Incoming Webhook
을 이용해 배포 알림, 에러 알림 등을 Slack
에 전송했는데 비슷한 기능을 Teams
를 통해 만들면서 관련된 내용을 이곳에 정리해본다.
커넥터 생성
Teams
에서는 커넥터라는 형태로 다른 애플리케이션과 Teams
내 채널 연동을 지원하고 있다.
커넥터 생성을 누른 뒤
Incoming Webhook을 선택한다.
Incoming Webhook의 이름 및 이미지 등을 지정하고 만들기를 누르면 아래 이미지와 같이 Incoming Webhook이 생성된다.
아래 URL 복사
를 클릭하여 Webhook url을 어딘가에 기록해두자.
curl을 이용한 Test
간단하게 curl
을 이용해 Teams
채널에 메시지를 쏴보자.
위에서 발급 받은 webhook url에 POST로 쏘면 되며 JSON 형태의 데이터를 받는 것 같다.
아래 형태의 JSON을 string 형태로 만들어서 던질 것이다.
{
"@context":"https://schema.org/extensions",
"@type":"MessageCard",
"themeColor":"0072C6",
"title":"Hello Teams!",
"text":"Hell Law World"
}
커맨드는 대략 아래와 같다.
curl -d '{"@context":"https://schema.org/extensions","@type":"MessageCard","themeColor":"0072C6","title":"Hello Teams!","text":"Hell Law World"}' -H "Content-Type: Application/JSON" -X POST YOUR_TEAMS_HOOK_URL
채널에 메시지가 잘 들어오는 것을 확인할 수 있다.
메시지 확장하기
webhook에 던지는 데이터에 potentialAction
데이터를 추가하여 액션을 추가할 수 있다.
자세한 내용은 https://docs.microsoft.com/en-us/outlook/actionable-messages/actionable-messages-via-connectors 를 참고하자.