로토의 블로그

Microsoft Teams Webhook으로 채널에 메시지 보내기

Microsoft Teams Webhook으로 채널에 메시지 보내기 대표 이미지

현재 회사에서는 커뮤니케이션 도구로 Slack을 쓰고 있었지만 보안 이슈가 있어서 MicrosoftTeams를 사용하게 되었다.

기존에는 SlackIncoming Webhook을 이용해 배포 알림, 에러 알림 등을 Slack에 전송했는데 비슷한 기능을 Teams를 통해 만들면서 관련된 내용을 이곳에 정리해본다.

커넥터 생성

Teams에서는 커넥터라는 형태로 다른 애플리케이션과 Teams 내 채널 연동을 지원하고 있다.

-----------2018-11-02------8.37.34

커넥터 생성을 누른 뒤

-----------2018-11-02------8.38.16

Incoming Webhook을 선택한다.

-----------2018-11-02------8.39.14-1

Incoming Webhook의 이름 및 이미지 등을 지정하고 만들기를 누르면 아래 이미지와 같이 Incoming Webhook이 생성된다.

-----------2018-11-02------8.39.48-1

아래 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

-----------2018-11-02------8.46.28

채널에 메시지가 잘 들어오는 것을 확인할 수 있다.

메시지 확장하기

webhook에 던지는 데이터에 potentialAction 데이터를 추가하여 액션을 추가할 수 있다.

자세한 내용은 https://docs.microsoft.com/en-us/outlook/actionable-messages/actionable-messages-via-connectors 를 참고하자.