ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Slack] SpringBoot Slack Message 전송
    기타 2022. 4. 7. 01:35
    반응형

    이 글은 혼자 학습한 내용을 바탕으로 작성되었습니다.

    틀리거나 잘못된 정보가 있을 수 있습니다.

    댓글로 알려주시면 수정하도록 하겠습니다.


    1. Slack App 생성

    SpringBoot App에서 Slack으로 Message를 전달하기 위해서는 먼저 Slack에 App을 생성해야 됩니다.

     

    Slack Api 홈페이지에 접속합니다. 우측 상단의 Your App을 클릭하여 App 화면으로 진입합니다.

    이후 화면에서 Create New App을 클릭하여 App생성을 실행합니다.

    Modal창에서는 From scratch를 클릭하여 App 생성을 진행합니다. 다음 Modal 창에서는 App의 이름과 Slack의 workspace를 선택합니다. 모두 작성이 완료되었다면 우측 하단의 Create App을 클릭합니다.

    App 생성이 완료가 되었다면 좌측 Menu에서 Incoming Webhooks 메뉴 화면으로 이동합니다.

    Webhooks화면에서 이제 Webhook을 활성화합니다. 우측 Toggle 버튼을 클릭하여 On으로 활성화합니다.

    활성화가 완료되면 하단에 Webhook을 통해 Slack으로 Message를 전달하는 방법에 대한 설명화 함께 Workspace에 신규 Webhook을 등록하는 버튼이 있습니다. 이 버튼을 클릭하여 Webhook을 생성합니다.

    이제 Slack의 Workspace에 연동할 채널을 선택하고 허용을 진행하면 됩니다.

    채널과의 연동이 완료되면 신규로 생성된 Webhook의 URL 정보와 함께 curl을 통한 Message전달 방법 예제가 만들어집니다.

    지금까지 작업을 통해 Slack으로 Message를 전달하기 위한 Slack의 연동 작업은 완료가 되었습니다.

     

    2. SpringBoot에서 Slack으로 Message 전송

    SpringBoot에서 Slack으로 Message를 전송하려면 위 Sample에 대한 설명에도 볼 수 있는 것처럼 Slack으로부터 받은 Webhook URL로 Message정보를 JSON 타입으로 POST 메소드 전송을 하면 연동한 채널에 Message가 전송되는 것을 알 수 있습니다.

     

    먼저 SpringBoot에서 /slack/test URL로 요청을 받으면 Post Slack이라는 Message가 Slack에 전송되는 코드를 작성하였습니다.

     

    코드를 잠깐 설명하자면 Slack에서의 예시와 동일하게 RestTemplate 객체를 생성하고 postForObject를 통해 Post 메소드 요청으로 Json을 전달하는 것 입니다.

     

    postForObject의 첫번째 파라미터는 Slack으로 부터 받은 Webhook URL을 작성하여 주면 되며 두번째 파라미터로는 Message가 될 정보를 전달해야 되므로 Map으로 필요한 정보를 담아 전달 하였습니다.

     

    마지막 파라미터는 responseType으로 String으로 전달 받기위해 String 클래스를 전달 합니다.

     

    이제 Slack의 채널로 이동하면 생성한 App의 이름과 'Posting Slack'의 메시지가 전달된 것을 확인할 수 있습니다.

     

    다음 포스팅에서는 Slack의 Interactive Message를 전달하는 방법을 알아보도록 하겠습니다.

    반응형

    댓글

Designed by Tistory.