반응형 메시지를 활용한 말풍선 시나리오
다음 예시는 카카오워크에서 제공하는 구글 캘린더 Bot을 사용하는 경우에 발송되는 일정 초대 알림 메시지입니다. 이 메시지에서는 Button Block과 Action 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 Block의 Action Type예제를 참고하시기 바랍니다.