Kakao Work::Bot 메시지 시나리오::반응형 메시지

페이지 이동경로

반응형 메시지를 활용한 말풍선 시나리오

다음 예시는 카카오워크에서 제공하는 구글 캘린더 Bot을 사용하는 경우에 발송되는 일정 초대 알림 메시지입니다. 이 메시지에서는 Button BlockAction Block이 각기 다른 action_type의 속성으로 지정되어 구성되어 있습니다. 단순히 외부 링크로 연결되는 Button Block(자세히 보기)과 달리 여러 개의 버튼을 한 행에 표현하는 Action Block(수락/거절/미정)에서 버튼을 누르면 해당 정보가 구글 캘린더에 전달되는 반응형 시나리오가 이어지도록 구성되어 있습니다.

  • 하나의 행 안에 긴 버튼 하나를 추가하는 경우에는 Button Block으로 구성합니다.
  • 하나의 행 안에 여러 개의 버튼을 포함하는 경우에는 Action Block으로 구성합니다.

구글 캘린더 Bot

말풍선 구성 예시

다음 예시에서 조합형 말풍선을 구성하는 블록은 다음과 같습니다.

반응형 메시지 그림반응형 메시지

위 예시는 조합형 말풍선 메시지 유형과 반응형 메시지 유형이 결합되어 있는 경우입니다. 즉, Button Block의 Button 속성은 open_system_browser로 설정되어 있기 때문에 메시지 유형은 알림형의 조합형 말풍선이 됩니다. 반면, Action Block의 세 가지 Button들의 속성은 submit_action로 설정되어 있기 때문에 반응형 메시지 유형이 됩니다.

코드예제반응형 메시지 Sample Code

{
    "text": "다음 일정에 초대되었습니다",
    "blocks": [
        {
            "type": "text",
            "text": "다음 일정에 초대되었습니다",
            "inlines": [
                {
                    "type": "styled",
                    "text": "다음 일정에 초대되었습니다.",
                    "bold": true
                }
            ]
        },
        {
            "type": "divider"
        },
        {
            "type": "text",
            "text": "서비스 정책회의 - 기획 논의",
            "inlines": [
                {
                    "type": "styled",
                    "text": "서비스 정책회의 - 기획 논의",
                    "bold": true
                }
            ]
        },
        {
            "type": "description",
            "term": "일시",
            "content": {
                "type": "text",
                "text": "17:00~19:00"
            },
            "accent": true
        },
        {
            "type": "description",
            "term": "장소",
            "content": {
                "type": "text",
                "text": "[판교] N9층 버드bird"
            },
            "accent": true
        },
        {
            "type": "button",
            "text": "자세히 보기",
            "style": "default",
            "action": {
                "type": "open_system_browser",
                "value": "http://example.com/details/999"
            }
        },
        {
            "type": "divider"
        },
        {
            "type": "text",
            "text": "참석 하시겠습니까?",
            "inlines": [
                {
                    "type": "styled",
                    "text": "참석 하시겠습니까?",
                    "bold": true
                }
            ]
        },
        {
            "type": "action",
            "elements": [
                {
                    "type": "button",
                    "text": "수락",
                    "style": "default",
                    "action": {
                        "type": "submit_action",
                        "name": "accept",
                        "value":"event_id=20210301-0024"
                    }
                },
                {
                    "type": "button",
                    "text": "거절",
                    "style": "default",
                    "action": {
                        "type": "submit_action",
                        "name": "decline",
                        "value":"event_id=20210301-0024"
                    }
                },
                {
                    "type": "button",
                    "text": "미정",
                    "style": "default",
                    "action": {
                        "type": "submit_action",
                        "name": "undetermined",
                        "value":"event_id=20210301-0024"
                    }
                }
            ]
        }
    ]
}

안내
submit_action을 활용한 Bot과 사용자 간의 메시지 흐름은 Bot 시작 가이드의 반응형 메시지 문서를 참고하시기 바랍니다.

  • 사용자가 선택한 버튼 정보는 Bot의 Callback URL로 전달됩니다. 상세한 Callback payload는 Button BlockAction Type예제를 참고하시기 바랍니다.
이 문서가 만족스러운 이유를 알려주세요.
이 문서에 아쉬운 점을 알려주세요.
평가해주셔서 감사합니다.

더 자세한 의견은 documentation@kakaoenterprise.com 으로 제보해주세요.