
Slack Block Kit 활용
두줄요약
Slack Block Kit과 Java SDK로 배송팁 승인·거부 버튼이 포함된 메시지를 구현했습니다.\nSlack 액션 payload를 Spring API에서 처리하고 기존 메시지 상태를 갱신했습니다.
문제 상황
- 배송팁 승인 요청을 Slack 메시지 안에서 처리하려는 요구
- 단순 알림용 Incoming Webhook을 넘어 사용자 액션 수신 필요
구조와 흐름
- Slack App의 Incoming Webhook으로 Block Kit 메시지 전송
- Interactivity Request URL과 actionId로 승인·거부 이벤트를 Spring API에 전달
- ActionResponse와 response_url로 기존 메시지의 승인 상태 갱신
해결 방법
- Block Kit Builder 템플릿을 기반으로 Java Slack SDK의 LayoutBlock 목록 구성
- ActionBlock에 승인·거부 버튼과 배송팁 식별값 설정
- form-urlencoded payload를 String으로 수신 후 Gson으로 BlockActionPayload 변환
주의할 점
- Slack 액션 요청의 Content-Type은 application/x-www-form-urlencoded;charset=UTF-8
- RequestBody 직접 수신 시 MissingServletRequestParameterException 발생 가능성
- replaceOriginal 값에 따른 기존 메시지 교체·추가 동작 구분



