단일형
텍스트 및 이미지로 구성된 간단한 답변 화면으로 구성됩니다.
KEYWORD_TEXT
표속성구성 | 분류 | 속성 |
---|---|---|
KEYWORD_TEXT | 단일형 | Basic , Interim |
KEYWORD_TEXT는 사용자 질문의 정답을 “간단한 키워드(Text)”로 표시할 수 있는 View Template 유형입니다. 현재 KEYWORD_TEXT가 적용된 도메인으로는 주식, 날짜, 시간, 알람, 어학, 환율, 구구단, 스피커, 시스템 설정 등이 있습니다.
그림주식에 대한 답변(TV용)
그림주식에 대한 답변(모바일용)
Request
표KEYWORD_TEXT Request Body파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
type | String | 필수 |
KEYWORD_TEXT 로 지정 |
Object | 필수 |
View Template 타입별 필수 /선택 /미사용 항목이 다름- 선택 항목 미 정의시, View Template에 출력되지 않음 |
|
title | Object: TemplateText | 선택 |
사용자 질문(발화)을 요약해서 표시 - 필수 엔티티 또는 선택 엔티티 등 필요한 정보를 노출 ex) title.plainText : "카카오"- 정보 중요도: title > subtitle - title은 가능한 한 styledText 사용 지양- icon은 텍스트 가독성을 높이기 위한 것으로 특정 엔티티에 국한된 이미지를 사용하지 않음 ex) 프랑스 국기 아이콘 X, 알람/지도 아이콘 O |
subtitle | Object: TemplateText | 선택 |
title을 보조하는 내용 - subtitle을 정의 시 반드시 title이 먼저 정의되어야 함 |
source | Object: TemplateText | 선택 |
콘텐츠 제공 출처 - 정보의 기준 날짜 또는 시간 등을 표시 ex) source.plainText : "7월 26일 오전 2:12 기준, Daum 검색" |
button1 button2 |
Object: TemplateButton | 선택 |
버튼 기능은 다음과 같음 - 버튼은 최대 두 개까지 노출 - 버튼 내 아이콘 사용은 지양 - 버튼 선택은 터치로만 가능(발화로 선택 불가) * 웹뷰(url) 열기: Daum 검색 결과와 상세 페이지 모두 랜딩이 가능한 경우, 1)과 2) 기준에 따라 하나의 웹 뷰를 열 수 있음(ex. 버티컬 엔드 페이지, Daum 검색 결과 페이지) 1) Daum 검색 결과가 더 많은 정보를 주거나 동일한 경우: '다음 검색 결과'로 연결(ex. 유명인 Daum 검색 결과 제공 시, 관련 뉴스 또는 실시간 정보 제공 가능) 2) 엔드 페이지에서만 주는 가치가 있다고 판단될 경우: '상세 페이지'로 연결(ex. 어학 상세 페이지의 예문/발음 듣기, 뉴스 기사의 TTS 지원) * 앱 스킴 * 디바이스 액션(ex. 전화 걸기) |
content | Object: Content | 필수 |
사용자 질문에 대한 정답(상세 내용) 표시 - 정보 중요도: primaryText > secondaryText - primaryText: 가장 중요한 정답형 정보(최대 두 줄) - secondaryText: primaryText의 부가 정보(최대 두 줄) ex) content.primaryText.plainText : "175,000원" |
quickReplies | Object: TemplateButton | 필수 |
quickReplies를 터치한 경우 해당 명령어를 발화한 것과 동일 동작 - 추천 명령어를 구어체로 작성(최소 두 개, 최대 열 개) - Play control(재생/일시정지/다음곡) 관련 명령은 지양 ex) 코스피 지수 알려줘 |
meta | Object: Meta | 선택 |
상세 정보를 확인하는 URL 정보로 톡 템플릿에서 활용 |
utterance (입력) | String | 선택 |
사용자 발화 |
ttl | String | 필수 |
화면 유지 시간 - 기본값: 10,000(msec) - 헤이카카오 앱의 경우 일괄: 300,000(msec) - 결괏값에 따라 다르게 설정 가능 ex) ttl : 10000※ 기존 View Template은 body.data.ttl 로 정의했으나, 2019년 9월 이후 신규 생성하는 View Template은 body.ttl 로 정의해야 함 |
style | String | 필수 |
최종 결과 화면(BASIC)인지 중간 결과 화면(INTERIM)인지 구분 - 기본값: BASIC - 별도 지정하지 않으면 BASIC 값으로 자동 지정 ex) style : "BASIC"※ 기존 View Template은 style 을 정의하지 않았으나, 2019년 9월 이후 신규 생성하는 View Template에서는 반드시 정의해야 함 |
token | String | 필수 |
각 도메인에서 발급하는 토큰 |
안내
Object 별 상세 정의는 Data Type 문서를 참고하시기 바랍니다.
Sample Code
다음 예시는 주식에 대한 답변(TV용)입니다.
코드예제KEYWORD_TEXT
{
"type": "Template.Render",
"body": {
"type": "KEYWORD_TEXT",
"data": {
"subtitle": {
"thumbnail": {}
},
"source": {
"plainText": "11월 28일 오후 3:30 기준, Daum검색",
"styledText": "11월 28일 오후 3:30 기준, Daum검색",
"thumbnail": {}
},
"button2": {
"thumbnail": {},
"action": {}
},
"background": {
"thumbnail": {}
},
"multimedia": {
"thumbnail": {}
},
"meta": {},
"content": {
"primaryText": {
"plainText": "157,000",
"styledText": "157,000",
"thumbnail": {}
},
"secondaryText": {
"plainText": "▼ 500 (-0.32%)",
"styledText": "<font color=\"#2795FF\">▼ 500 (-0.32%)</font>",
"thumbnail": {}
},
"paragraph": {
"thumbnail": {}
}
},
"title": {
"plainText": "카카오",
"styledText": "카카오",
"thumbnail": {}
},
"ttl": 10000,
"button1": {
"plainText": "자세히 보기",
"thumbnail": {},
"action": {
"url": "https://search.daum.net/search?nil_suggest=btn&w=tot&DA=SBC&q=카카오%20주가"
}
},
"quickReplies": [
{
"plainText": "코스피 지수 알려줘",
"thumbnail": {},
"action": {
"url": "kakaoi://instruction?body=%7B%22utterance%22%3A%22%EC%BD%94%EC%8A%A4%ED%94%BC+%EC%A7%80%EC%88%98+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F595d98869418c2e1e6a000bd%2Fd41d8cd98f00b204e9800998ecf8427e%22%7D&type=Recognizer.RequestText"
}
},
{
"plainText": "코스닥 지수 알려줘",
"thumbnail": {},
"action": {
"url": "kakaoi://instruction?body=%7B%22utterance%22%3A%22%EC%BD%94%EC%8A%A4%EB%8B%A5+%EC%A7%80%EC%88%98+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F595d98869418c2e1e6a000bd%2Fd41d8cd98f00b204e9800998ecf8427e%22%7D&type=Recognizer.RequestText"
}
},
{
"plainText": "카카오 관련 뉴스 들려줘",
"thumbnail": {},
"action": {
"url": "kakaoi://instruction?body=%7B%22utterance%22%3A%22%EC%B9%B4%EC%B9%B4%EC%98%A4+%EA%B4%80%EB%A0%A8+%EB%89%B4%EC%8A%A4+%EB%93%A4%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F595d98869418c2e1e6a000bd%2Fd41d8cd98f00b204e9800998ecf8427e%22%7D&type=Recognizer.RequestText"
}
},
{
"plainText": "경제 뉴스 알려줘",
"thumbnail": {},
"action": {
"url": "kakaoi://instruction?body=%7B%22utterance%22%3A%22%EA%B2%BD%EC%A0%9C+%EB%89%B4%EC%8A%A4+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F595d98869418c2e1e6a000bd%2Fd41d8cd98f00b204e9800998ecf8427e%22%7D&type=Recognizer.RequestText"
}
}
]
},
"token": "kakao/595d98869418c2e1e6a000bd/d41d8cd98f00b204e9800998ecf8427e"
}
}
IMAGE_TEXT
표속성구성 | 분류 | 속성 |
---|---|---|
IMAGE_TEXT | 단일형 | Basic , Interim |
IMAGE_TEXT는 사용자 질문의 정답을 “간단한 이미지(또는 동영상) 및 키워드”로 표시할 수 있는 유형입니다. 현재 IMAGE_TEXT가 적용된 도메인으로는 교통정보, 로또, 어학, 운세, 음악, 인물, 장소검색, 주식, 카톡, 환율 등이 있습니다.
그림현재 방송 프로그램에 대한 답변(TV용)
그림바람 세기에 대한 답변(모바일용)
Request
표IMAGE_TEXT Request Body파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
type | String | 필수 |
IMAGE_TEXT 로 지정 |
Object | 필수 |
View Template 타입별 필수 /선택 /미사용 항목이 다름- 선택 항목 미 정의시, View Template에 출력되지 않음 |
|
title | Object: TemplateText | 선택 |
사용자 질문(발화)을 요약해서 표시 - 필수 엔티티 또는 선택 엔티티 등 필요한 정보를 노출 ex) title.plainText : "카카오"- 정보 중요도: title > subtitle - title은 가능한 한 styledText 사용 지양- icon은 텍스트 가독성을 높이기 위한 것으로 특정 엔티티에 국한된 이미지를 사용하지 않음 ex) 프랑스 국기 아이콘 X, 알람/지도 아이콘 O |
subtitle | Object: TemplateText | 선택 |
title을 보조하는 내용 - subtitle을 정의 시 반드시 title이 먼저 정의되어야 함 |
source | Object: TemplateText | 선택 |
콘텐츠 제공 출처 - 정보의 기준 날짜 또는 시간 등을 표시 ex) source.plainText : "7월 26일 오전 2:12 기준, Daum 검색" |
button1 button2 |
Object: TemplateButton | 선택 |
버튼 기능은 다음과 같음 - 버튼은 최대 두 개까지 노출 - 버튼 내 아이콘 사용은 지양 - 버튼 선택은 터치로만 가능(발화로 선택 불가) * 웹뷰(url) 열기: Daum 검색 결과와 상세 페이지 모두 랜딩이 가능한 경우, 1)과 2) 기준에 따라 하나의 웹 뷰를 열 수 있음(ex. 버티컬 엔드 페이지, Daum 검색 결과 페이지) 1) Daum 검색 결과가 더 많은 정보를 주거나 동일한 경우: '다음 검색 결과'로 연결(ex. 유명인 Daum 검색 결과 제공 시, 관련 뉴스 또는 실시간 정보 제공 가능) 2) 엔드 페이지에서만 주는 가치가 있다고 판단될 경우: '상세 페이지'로 연결(ex. 어학 상세 페이지의 예문/발음 듣기, 뉴스 기사의 TTS 지원) * 앱 스킴 * 디바이스 액션(ex. 전화 걸기) |
multimedia | Object: TemplateMedia | 필수 |
사용자 질문의 정답을 잘 요약한 Image 또는 Video ex) multimedia.mediaType : "IMAGE"multimedia.mediaUrl : "http://tv/moon.png" |
content | Object: Content | 필수 |
사용자 질문에 대한 정답(상세 내용) 표시 - 정보 중요도: primaryText > secondaryText - primaryText: 가장 중요한 정답형 정보(최대 두 줄) - secondaryText: primaryText의 부가 정보(최대 두 줄) ex) content.primaryText.plainText : "175,000원" |
quickReplies | Object: TemplateButton | 필수 |
quickReplies를 터치한 경우 해당 명령어를 발화한 것과 동일 동작 - 추천 명령어를 구어체로 작성(최소 두 개, 최대 열 개) - Play control(재생/일시정지/다음곡) 관련 명령은 지양 ex) 코스피 지수 알려줘 |
meta | Object: Meta | 선택 |
상세 정보를 확인하는 URL 정보로 톡 템플릿에서 활용 |
utterance (입력) | String | 선택 |
사용자 발화 |
ttl | String | 필수 |
화면 유지 시간 - 기본값: 10,000(msec) - 헤이카카오 앱의 경우 일괄: 300,000(msec) - 결괏값에 따라 다르게 설정 가능 ex) ttl : 10000※ 기존 View Template은 body.data.ttl 로 정의했으나, 2019년 9월 이후 신규 생성하는 View Template은 body.ttl 로 정의해야 함 |
style | String | 필수 |
최종 결과 화면(BASIC)인지 중간 결과 화면(INTERIM)인지 구분 - 기본값: BASIC - 별도 지정하지 않으면 BASIC 값으로 자동 지정 ex) style : "BASIC"※ 기존 View Template은 style 을 정의하지 않았으나, 2019년 9월 이후 신규 생성하는 View Template에서는 반드시 정의해야 함 |
token | String | 필수 |
각 도메인에서 발급하는 토큰 |
안내
Object 별 상세 정의는 Data Type 문서를 참고하시기 바랍니다.
Sample Code
다음 예시는 바람 세기에 대한 답변입니다.
코드예제IMAGE_TEXT
{
"type": "Template.Render",
"body": {
"type": "IMAGE_TEXT",
"token": "kakao/5964a21d9418c2bd523473a8/16cf6dc2-5338-45e5-a02b-387a8c5fcac7",
"data": {
"subtitle": {
"styledText": "서울시 종로구 부암동",
"plainText": "서울시 종로구 부암동"
},
"source": {
"styledText": "11월 29일 AM 5:00 기준, Daum검색",
"plainText": "11월 29일 AM 5:00 기준, Daum검색"
},
"background": {
"color": "#222431"
},
"multimedia": {
"mediaType": "IMAGE",
"mediaUrl": "http://t1.kakaocdn.net/ai_viewtemplate/weather/v1/wind/02.png"
},
"meta": {
"plainText": "서울시 종로구 부암동 풍속",
"mobileUrl": "https://m.search.daum.net/search?w=tot&nil_mtopsearch=btn&DA=YZR&q=%EC%84%9C%EC%9A%B8%EC%8B%9C+%EC%A2%85%EB%A1%9C%EA%B5%AC+%EB%B6%80%EC%95%94%EB%8F%99+%ED%92%8D%EC%86%8D",
"webUrl": "https://search.daum.net/search?w=tot&q=%EC%84%9C%EC%9A%B8%EC%8B%9C+%EC%A2%85%EB%A1%9C%EA%B5%AC+%EB%B6%80%EC%95%94%EB%8F%99+%ED%92%8D%EC%86%8D"
},
"content": {
"primaryText": {
"styledText": "2.0m/s",
"plainText": "2.0m/s"
},
"secondaryText": {
"styledText": "북풍",
"plainText": "북풍"
}
},
"title": {
"styledText": "오늘 바람",
"plainText": "오늘 바람"
},
"ttl": 10000,
"button1": {
"plainText": "상세 보기",
"action": {
"url": "https://m.search.daum.net/search?w=tot&nil_mtopsearch=btn&DA=YZR&q=%EC%84%9C%EC%9A%B8%EC%8B%9C+%EC%A2%85%EB%A1%9C%EA%B5%AC+%EB%B6%80%EC%95%94%EB%8F%99+%ED%92%8D%EC%86%8D"
}
},
"quickReplies": [
{
"plainText": "부암동 풍향은",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EB%B6%80%EC%95%94%EB%8F%99+%ED%92%8D%ED%96%A5%EC%9D%80%22%7D"
}
},
{
"plainText": "부암동 현재 풍속",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EB%B6%80%EC%95%94%EB%8F%99+%ED%98%84%EC%9E%AC+%ED%92%8D%EC%86%8D%22%7D"
}
},
{
"plainText": "부암동 내일 풍속",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EB%B6%80%EC%95%94%EB%8F%99+%EB%82%B4%EC%9D%BC+%ED%92%8D%EC%86%8D%22%7D"
}
},
{
"plainText": "부암동 모레 풍속",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EB%B6%80%EC%95%94%EB%8F%99+%EB%AA%A8%EB%A0%88+%ED%92%8D%EC%86%8D%22%7D"
}
},
{
"plainText": "부암동 초미세먼지는",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EB%B6%80%EC%95%94%EB%8F%99+%EC%B4%88%EB%AF%B8%EC%84%B8%EB%A8%BC%EC%A7%80%EB%8A%94%22%7D"
}
},
{
"plainText": "부암동 기온은",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EB%B6%80%EC%95%94%EB%8F%99+%EA%B8%B0%EC%98%A8%EC%9D%80%22%7D"
}
},
{
"plainText": "부암동 지금 체감온도",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EB%B6%80%EC%95%94%EB%8F%99+%EC%A7%80%EA%B8%88+%EC%B2%B4%EA%B0%90%EC%98%A8%EB%8F%84%22%7D"
}
}
]
}
}
}
FULL_TEXT
FULL_TEXT는 사용자 질문에 대한 정답을 “긴 글”로 표시할 수 있는 유형으로, 필요에 따라 “이미지”도 함께 표시할 수 있습니다. 현재 FULL_TEXT가 적용된 도메인으로는 콘텐츠 줄거리, 백과사전, 음악 등이 있습니다.
표속성구성 | 분류 | 속성 |
---|---|---|
FULL_TEXT | 단일형 | Basic |
그림노래 가사 답변(TV용)
그림노래 가사 답변(모바일용)
Request
표FULL_TEXT Request Body파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
type | String | 필수 |
FULL_TEXT 로 지정 |
Object | 필수 |
View Template 타입별 필수 /선택 /미사용 항목이 다름- 선택 항목 미 정의시, View Template에 출력되지 않음 |
|
title | Object: TemplateText | 선택 |
사용자 질문(발화)을 요약해서 표시 - 필수 엔티티 또는 선택 엔티티 등 필요한 정보를 노출 ex) title.plainText : "카카오"- 정보 중요도: title > subtitle - title은 가능한 한 styledText 사용 지양- icon은 텍스트 가독성을 높이기 위한 것으로 특정 엔티티에 국한된 이미지를 사용하지 않음 ex) 프랑스 국기 아이콘 X, 알람/지도 아이콘 O |
subtitle | Object: TemplateText | 선택 |
title을 보조하는 내용 - subtitle을 정의 시 반드시 title이 먼저 정의되어야 함 |
source | Object: TemplateText | 선택 |
콘텐츠 제공 출처 - 정보의 기준 날짜 또는 시간 등을 표시 ex) source.plainText : "7월 26일 오전 2:12 기준, Daum 검색" |
button1 button2 |
Object: TemplateButton | 선택 |
버튼 기능은 다음과 같음 - 버튼은 최대 두 개까지 노출 - 버튼 내 아이콘 사용은 지양 - 버튼 선택은 터치로만 가능(발화로 선택 불가) * 웹뷰(url) 열기: Daum 검색 결과와 상세 페이지 모두 랜딩이 가능한 경우, 1)과 2) 기준에 따라 하나의 웹 뷰를 열 수 있음(ex. 버티컬 엔드 페이지, Daum 검색 결과 페이지) 1) Daum 검색 결과가 더 많은 정보를 주거나 동일한 경우: '다음 검색 결과'로 연결(ex. 유명인 Daum 검색 결과 제공 시, 관련 뉴스 또는 실시간 정보 제공 가능) 2) 엔드 페이지에서만 주는 가치가 있다고 판단될 경우: '상세 페이지'로 연결(ex. 어학 상세 페이지의 예문/발음 듣기, 뉴스 기사의 TTS 지원) * 앱 스킴 * 디바이스 액션(ex. 전화 걸기) |
multimedia | Object: TemplateMedia | 선택 |
사용자 질문의 정답을 이미지로 표시 ex) multimedia.mediaType : "IMAGE" |
content | Object: Content | 필수 |
사용자 질문에 대한 정답(상세 내용) 표시 - 정보 중요도: multimedia = paragraph ex) content.paragraph.plainText : "이 밤 그날에 ... (중략)" |
quickReplies | Object: TemplateButton | 필수 |
quickReplies를 터치한 경우 해당 명령어를 발화한 것과 동일 동작 - 추천 명령어를 구어체로 작성(최소 두 개, 최대 열 개) - Play control(재생/일시정지/다음곡) 관련 명령은 지양 ex) 코스피 지수 알려줘 |
meta | Object: Meta | 선택 |
상세 정보를 확인하는 URL 정보로 톡 템플릿에서 활용 |
utterance (입력) | String | 선택 |
사용자 발화 |
ttl | String | 필수 |
화면 유지 시간 - 기본값: 10,000(msec) - 헤이카카오 앱의 경우 일괄: 300,000(msec) - 결괏값에 따라 다르게 설정 가능 ex) ttl : 10000※ 기존 View Template은 body.data.ttl 로 정의했으나, 2019년 9월 이후 신규 생성하는 View Template은 body.ttl 로 정의해야 함 |
style | String | 필수 |
최종 결과 화면(BASIC)인지 중간 결과 화면(INTERIM)인지 구분 - 기본값: BASIC - 별도 지정하지 않으면 BASIC 값으로 자동 지정 ex) style : "BASIC"※ 기존 View Template은 style 을 정의하지 않았으나, 2019년 9월 이후 신규 생성하는 View Template에서는 반드시 정의해야 함 |
token | String | 필수 |
각 도메인에서 발급하는 토큰 |
안내
Object 별 상세 정의는 Data Type 문서를 참고하시기 바랍니다.
Sample Code
다음 예시는 노래 가사 답변입니다.
코드예제FULL_TEXT
{
"type": "Template.Render",
"body": {
"type": "FULL_TEXT",
"token": "L34WriJD5Rp/595469f49418c2172f3eba9b/MUSER.VQ-GDM_TEST.1575251225718",
"data": {
"source": {
"styledText": "멜론",
"plainText": "멜론"
},
"button2": {
"plainText": "곡 정보",
"action": {
"url": "https://www.melon.com/song/detail.htm?songId=30314784"
}
},
"multimedia": {
"mediaType": "IMAGE",
"mediaUrl": "http://search1.daumcdn.net/thumb/C800x800/?fname=http%3A%2F%2Fkkoimg.melon.co.kr%2Fcm%2Falbum%2Fimages%2F100%2F47%2F890%2F10047890_1000.jpg%3Ffe3170fcb1ac397fc072be5877d5f1b9"
},
"content": {
"primaryText": {
"styledText": "밤편지",
"plainText": "밤편지"
},
"secondaryText": {
"styledText": "아이유",
"plainText": "아이유"
}
},
"title": {
"styledText": "음악 정보",
"plainText": "음악 정보"
},
"ttl": 10000,
"button1": {
"plainText": "지금 재생",
"action": {
"url": "kakaoi://event?type=Template.ElementSelected&body=%7B%22token%22%3A%22L34WriJD5Rp%2F595469f49418c2172f3eba9b%2FMUSER.VQ-GDM_TEST%22%2C%22params%22%3A%5B%7B%22key%22%3A%22type%22%2C%22value%22%3A%22PLAY_SONG%22%7D%2C%7B%22key%22%3A%22songId%22%2C%22value%22%3A%2230314784%22%7D%2C%7B%22key%22%3A%22index%22%2C%22value%22%3A%220%22%7D%5D%7D"
}
},
"quickReplies": [
{
"plainText": "작사가 누구야",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22token%22%3A%22L34WriJD5Rp%2F595469f49418c2172f3eba9b%2FMUSER.VQ-GDM_TEST%22%2C%22utterance%22%3A%22%EC%9D%B4+%EB%85%B8%EB%9E%98+%EC%9E%91%EC%82%AC%ED%95%9C+%EC%82%AC%EB%9E%8C+%EB%88%84%EA%B5%AC%EC%95%BC%22%7D"
}
},
{
"plainText": "작곡가 누구야",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22token%22%3A%22L34WriJD5Rp%2F595469f49418c2172f3eba9b%2FMUSER.VQ-GDM_TEST%22%2C%22utterance%22%3A%22%EC%9D%B4+%EB%85%B8%EB%9E%98+%EC%9E%91%EA%B3%A1%ED%95%9C+%EC%82%AC%EB%9E%8C+%EB%88%84%EA%B5%AC%EC%95%BC%22%7D"
}
},
{
"plainText": "유사곡 들려줘",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22token%22%3A%22L34WriJD5Rp%2F595469f49418c2172f3eba9b%2FMUSER.VQ-GDM_TEST%22%2C%22utterance%22%3A%22%EC%A7%80%EA%B8%88+%EB%93%A3%EB%8A%94+%EB%85%B8%EB%9E%98%EC%99%80+%EC%9C%A0%EC%82%AC%ED%95%9C+%EA%B3%A1+%ED%8B%80%EC%96%B4%EC%A4%98%22%7D"
}
},
{
"plainText": "좋아요 해줘",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22token%22%3A%22L34WriJD5Rp%2F595469f49418c2172f3eba9b%2FMUSER.VQ-GDM_TEST%22%2C%22utterance%22%3A%22%EC%A7%80%EA%B8%88+%EB%93%A3%EB%8A%94+%EB%85%B8%EB%9E%98+%EC%A2%8B%EC%95%84%EC%9A%94+%ED%95%B4%EC%A4%98%22%7D"
}
},
{
"plainText": "카톡 보내줘",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22token%22%3A%22L34WriJD5Rp%2F595469f49418c2172f3eba9b%2FMUSER.VQ-GDM_TEST%22%2C%22utterance%22%3A%22%EC%A7%80%EA%B8%88+%EB%93%A3%EB%8A%94+%EB%85%B8%EB%9E%98%EB%A1%9C+%EC%B9%B4%ED%86%A1+%EB%B3%B4%EB%82%B4%EC%A4%98%22%7D"
}
},
{
"plainText": "멜론 실시간차트 틀어줘",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22token%22%3A%22L34WriJD5Rp%2F595469f49418c2172f3eba9b%2FMUSER.VQ-GDM_TEST%22%2C%22utterance%22%3A%22%EB%A9%9C%EB%A1%A0+%EC%8B%A4%EC%8B%9C%EA%B0%84%EC%B0%A8%ED%8A%B8+%ED%8B%80%EC%96%B4%EC%A4%98%22%7D"
}
},
{
"plainText": "팝송 차트 틀어줘",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22token%22%3A%22L34WriJD5Rp%2F595469f49418c2172f3eba9b%2FMUSER.VQ-GDM_TEST%22%2C%22utterance%22%3A%22%ED%8C%9D%EC%86%A1+%EC%B0%A8%ED%8A%B8+%ED%8B%80%EC%96%B4%EC%A4%98%22%7D"
}
}
]
}
}
}
IMAGE
IMAGE는 사용자 질문에 대한 정답을 “큰 이미지 하나 또는 동영상"으로 표시할 수 있는 유형입니다. 현재 IMAGE가 적용된 도메인으로는 날씨와 로또 등이 있습니다.
표속성구성 | 분류 | 속성 |
---|---|---|
IMAGE | 단일형 | Basic |
그림주간 날씨에 대한 답변(TV용)
그림오늘 날씨에 대한 답변(모바일용)
Request
표IMAGE Request Body파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
type | String | 필수 |
IMAGE 로 지정 |
Object | 필수 |
View Template 타입별 필수 /선택 /미사용 항목이 다름- 선택 항목 미 정의시, View Template에 출력되지 않음 |
|
title | Object: TemplateText | 선택 |
사용자 질문(발화)을 요약해서 표시 - 필수 엔티티 또는 선택 엔티티 등 필요한 정보를 노출 ex) title.plainText : "카카오"- 정보 중요도: title > subtitle - title은 가능한 한 styledText 사용 지양- icon은 텍스트 가독성을 높이기 위한 것으로 특정 엔티티에 국한된 이미지를 사용하지 않음 ex) 프랑스 국기 아이콘 X, 알람/지도 아이콘 O |
subtitle | Object: TemplateText | 선택 |
title을 보조하는 내용 - subtitle을 정의 시 반드시 title이 먼저 정의되어야 함 |
source | Object: TemplateText | 선택 |
콘텐츠 제공 출처 - 정보의 기준 날짜 또는 시간 등을 표시 ex) source.plainText : "7월 26일 오전 2:12 기준, Daum 검색" |
button1 button2 |
Object: TemplateButton | 선택 |
버튼 기능은 다음과 같음 - 버튼은 최대 두 개까지 노출 - 버튼 내 아이콘 사용은 지양 - 버튼 선택은 터치로만 가능(발화로 선택 불가) * 웹뷰(url) 열기: Daum 검색 결과와 상세 페이지 모두 랜딩이 가능한 경우, 1)과 2) 기준에 따라 하나의 웹 뷰를 열 수 있음(ex. 버티컬 엔드 페이지, Daum 검색 결과 페이지) 1) Daum 검색 결과가 더 많은 정보를 주거나 동일한 경우: '다음 검색 결과'로 연결(ex. 유명인 Daum 검색 결과 제공 시, 관련 뉴스 또는 실시간 정보 제공 가능) 2) 엔드 페이지에서만 주는 가치가 있다고 판단될 경우: '상세 페이지'로 연결(ex. 어학 상세 페이지의 예문/발음 듣기, 뉴스 기사의 TTS 지원) * 앱 스킴 * 디바이스 액션(ex. 전화 걸기) |
multimedia | Object: TemplateMedia | - | 사용자 질문의 정답을 이미지로 표시 ex) multimedia.mediaType : "IMAGE" |
content | Object: Content | 선택 |
사용자 질문에 대한 정답(상세 내용) 표시 |
quickReplies | Object: TemplateButton | 필수 |
quickReplies를 터치한 경우 해당 명령어를 발화한 것과 동일 동작 - 추천 명령어를 구어체로 작성(최소 두 개, 최대 열 개) - Play control(재생/일시정지/다음곡) 관련 명령은 지양 ex) 코스피 지수 알려줘 |
meta | Object: Meta | 선택 |
상세 정보를 확인하는 URL 정보로 톡 템플릿에서 활용 |
utterance (입력) | String | 선택 |
사용자 발화 |
ttl | String | 필수 |
화면 유지 시간 - 기본값: 10,000(msec) - 헤이카카오 앱의 경우 일괄: 300,000(msec) - 결괏값에 따라 다르게 설정 가능 ex) ttl : 10000※ 기존 View Template은 body.data.ttl 로 정의했으나, 2019년 9월 이후 신규 생성하는 View Template은 body.ttl 로 정의해야 함 |
style | String | 필수 |
최종 결과 화면(BASIC)인지 중간 결과 화면(INTERIM)인지 구분 - 기본값: BASIC - 별도 지정하지 않으면 BASIC 값으로 자동 지정 ex) style : "BASIC"※ 기존 View Template은 style 을 정의하지 않았으나, 2019년 9월 이후 신규 생성하는 View Template에서는 반드시 정의해야 함 |
token | String | 필수 |
각 도메인에서 발급하는 토큰 |
안내
Object 별 상세 정의는 Data Type 문서를 참고하시기 바랍니다.
Sample Code
다음 예시는 주간 날씨에 대한 답변 샘플코드입니다.
코드예제IMAGE
{
"type": "Template.Render",
"body": {
"type": "IMAGE",
"token": "kakao/5964a21d9418c2bd523473a8/e26fe620-fd1c-4288-b96e-f0cdab0feb82",
"data": {
"subtitle": {
"styledText": "서울시 종로구 부암동",
"plainText": "서울시 종로구 부암동"
},
"source": {
"styledText": "12월 2일 AM 12:00 기준, Daum검색",
"plainText": "12월 2일 AM 12:00 기준, Daum검색"
},
"background": {
"color": "#222431"
},
"multimedia": {
"mediaType": "IMAGE",
"mediaUrl": "https://imp.kakao.com/html2img/view/weather/2019/12/2/GDM-TEST-08de27c359ec421b9ad3805c277b962c_45432890-14a5-11ea-8543-1328441678e5.png"
},
"meta": {
"plainText": "주간 서울시 종로구 부암동 날씨",
"mobileUrl": "https://m.search.daum.net/search?w=tot&nil_mtopsearch=btn&DA=YZR&q=%EC%A3%BC%EA%B0%84+%EC%84%9C%EC%9A%B8%EC%8B%9C+%EC%A2%85%EB%A1%9C%EA%B5%AC+%EB%B6%80%EC%95%94%EB%8F%99+%EB%82%A0%EC%94%A8",
"webUrl": "https://search.daum.net/search?w=tot&q=%EC%A3%BC%EA%B0%84+%EC%84%9C%EC%9A%B8%EC%8B%9C+%EC%A2%85%EB%A1%9C%EA%B5%AC+%EB%B6%80%EC%95%94%EB%8F%99+%EB%82%A0%EC%94%A8"
},
"title": {
"styledText": "주간 날씨",
"plainText": "주간 날씨"
},
"ttl": 10000,
"button1": {
"plainText": "상세 보기",
"action": {
"url": "https://m.search.daum.net/search?w=tot&nil_mtopsearch=btn&DA=YZR&q=%EC%A3%BC%EA%B0%84+%EC%84%9C%EC%9A%B8%EC%8B%9C+%EC%A2%85%EB%A1%9C%EA%B5%AC+%EB%B6%80%EC%95%94%EB%8F%99+%EB%82%A0%EC%94%A8"
}
},
"quickReplies": [
{
"plainText": "부암동 기온은",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EB%B6%80%EC%95%94%EB%8F%99+%EA%B8%B0%EC%98%A8%EC%9D%80%22%7D"
}
},
{
"plainText": "부암동 비 와",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EB%B6%80%EC%95%94%EB%8F%99+%EB%B9%84+%EC%99%80%22%7D"
}
}
]
}
}
}
목록형
순서 또는 후보군이 있는 음성 답변의 화면으로 사용됩니다.
LIST_HORIZONTAL
LIST_HORIZONTAL은 사용자 질문에 대한 정답에 순서(순위)가 있거나 후보군이 있을 경우 표시하는 유형입니다. 현재 LIST_HORIZONTAL이 적용된 도메인으로는 날짜, 라디오, 스포츠, 도움말 등이 있습니다.
표속성구성 | 분류 | 속성 |
---|---|---|
LIST_HORIZONTAL | 목록형 | Basic , Interim |
그림시청률에 대한 답변(TV용)
그림야구 순위에 대한 답변(모바일용)
Request
표LIST_HORIZONTAL Request Body파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
type | String | 필수 |
LIST_HORIZONTAL 로 지정 |
Object | 필수 |
View Template 타입별 필수 /선택 /미사용 항목이 다름- 선택 항목 미 정의시, View Template에 출력되지 않음 |
|
title | Object: TemplateText | 선택 |
사용자 질문(발화)을 요약해서 표시 - 필수 엔티티 또는 선택 엔티티 등 필요한 정보를 노출 ex) title.plainText : "카카오"- 정보 중요도: title > subtitle - title은 가능한 한 styledText 사용 지양- icon은 텍스트 가독성을 높이기 위한 것으로 특정 엔티티에 국한된 이미지를 사용하지 않음 ex) 프랑스 국기 아이콘 X, 알람/지도 아이콘 O |
subtitle | Object: TemplateText | 선택 |
title을 보조하는 내용 - subtitle을 정의 시 반드시 title이 먼저 정의되어야 함 |
source | Object: TemplateText | 선택 |
콘텐츠 제공 출처 - 정보의 기준 날짜 또는 시간 등을 표시 ex) source.plainText : "7월 26일 오전 2:12 기준, Daum 검색" |
button1 button2 |
Object: TemplateButton | 선택 |
버튼 기능은 다음과 같음 - 버튼은 최대 두 개까지 노출 - 버튼 내 아이콘 사용은 지양 - 버튼 선택은 터치로만 가능(발화로 선택 불가) * 웹뷰(url) 열기: Daum 검색 결과와 상세 페이지 모두 랜딩이 가능한 경우, 1)과 2) 기준에 따라 하나의 웹 뷰를 열 수 있음(ex. 버티컬 엔드 페이지, Daum 검색 결과 페이지) 1) Daum 검색 결과가 더 많은 정보를 주거나 동일한 경우: '다음 검색 결과'로 연결(ex. 유명인 Daum 검색 결과 제공 시, 관련 뉴스 또는 실시간 정보 제공 가능) 2) 엔드 페이지에서만 주는 가치가 있다고 판단될 경우: '상세 페이지'로 연결(ex. 어학 상세 페이지의 예문/발음 듣기, 뉴스 기사의 TTS 지원) * 앱 스킴 * 디바이스 액션(ex. 전화 걸기) |
background | Object: Background | 선택 |
View Template 배경 지정 - 색상, 이미지 등으로 표시 |
itemLayout | String | 필수 |
item 내 primaryText와 secondaryText가 배치되는 레이아웃을 정의 - Horizontal 타입: 수평으로 배치 - Vertical 타입: 수직으로 배치 |
items | Object: Item | 필수 |
사용자에게 되묻는 항목들의 후보군 표시 항목 중 하나 선택 시, 연결되는 동작들을 정의할 수 있음 ex) head.plainText : [순서]primaryText.plainText : [이름]secondaryText.plainText : [연락처]action.Url : *해당 이름/연락처로 전화걸기 동작 수행 |
quickReplies | Object: TemplateButton | 필수 |
quickReplies를 터치한 경우 해당 명령어를 발화한 것과 동일 동작 - 추천 명령어를 구어체로 작성(최소 두 개, 최대 열 개) - Play control(재생/일시정지/다음곡) 관련 명령은 지양 ex) 코스피 지수 알려줘 |
meta | Object: Meta | 선택 |
상세 정보를 확인하는 URL 정보로 톡 템플릿에서 활용 |
utterance (입력) | String | 선택 |
사용자 발화 |
ttl | String | 필수 |
화면 유지 시간 - 기본값: 10,000(msec) - 헤이카카오 앱의 경우 일괄: 300,000(msec) - 결괏값에 따라 다르게 설정 가능 ex) ttl : 10000※ 기존 View Template은 body.data.ttl 로 정의했으나, 2019년 9월 이후 신규 생성하는 View Template은 body.ttl 로 정의해야 함 |
style | String | 필수 |
최종 결과 화면(BASIC)인지 중간 결과 화면(INTERIM)인지 구분 - 기본값: BASIC - 별도 지정하지 않으면 BASIC 값으로 자동 지정 ex) style : "BASIC"※ 기존 View Template은 style 을 정의하지 않았으나, 2019년 9월 이후 신규 생성하는 View Template에서는 반드시 정의해야 함 |
token | String | 필수 |
각 도메인에서 발급하는 토큰 |
안내
Object 별 상세 정의는 Data Type 문서를 참고하시기 바랍니다.
Sample Code
다음 예시는 실시간 검색어에 대한 답변입니다.
코드예제LIST_HORIZONTAL
{
"type": "Template.Render",
"body": {
"type": "LIST_HORIZONTAL",
"token": "kakao/5a0940e99418c2c288700549/%7B%22page%22%3A1%7D",
"data": {
"source": {
"styledText": "오전 10:48 기준, Daum검색",
"plainText": "오전 10:48 기준, Daum검색"
},
"items": [
{
"head": {
"styledText": "1",
"plainText": "1"
},
"primaryText": {
"styledText": "lg 유플러스",
"plainText": "lg 유플러스"
},
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B2%80%EC%83%89%EC%96%B4+1%EC%9C%84+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"head": {
"styledText": "2",
"plainText": "2"
},
"primaryText": {
"styledText": "백원우",
"plainText": "백원우"
},
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B2%80%EC%83%89%EC%96%B4+2%EC%9C%84+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"head": {
"styledText": "3",
"plainText": "3"
},
"primaryText": {
"styledText": "올리브영",
"plainText": "올리브영"
},
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B2%80%EC%83%89%EC%96%B4+3%EC%9C%84+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"head": {
"styledText": "4",
"plainText": "4"
},
"primaryText": {
"styledText": "5등급 차량 조회",
"plainText": "5등급 차량 조회"
},
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B2%80%EC%83%89%EC%96%B4+4%EC%9C%84+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"head": {
"styledText": "5",
"plainText": "5"
},
"primaryText": {
"styledText": "장정윤 작가",
"plainText": "장정윤 작가"
},
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B2%80%EC%83%89%EC%96%B4+5%EC%9C%84+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"head": {
"styledText": "6",
"plainText": "6"
},
"primaryText": {
"styledText": "성남 어린이집 성폭행",
"plainText": "성남 어린이집 성폭행"
},
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B2%80%EC%83%89%EC%96%B4+6%EC%9C%84+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"head": {
"styledText": "7",
"plainText": "7"
},
"primaryText": {
"styledText": "김태우",
"plainText": "김태우"
},
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B2%80%EC%83%89%EC%96%B4+7%EC%9C%84+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"head": {
"styledText": "8",
"plainText": "8"
},
"primaryText": {
"styledText": "베트남 축구",
"plainText": "베트남 축구"
},
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B2%80%EC%83%89%EC%96%B4+8%EC%9C%84+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"head": {
"styledText": "9",
"plainText": "9"
},
"primaryText": {
"styledText": "쿠우쿠우",
"plainText": "쿠우쿠우"
},
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B2%80%EC%83%89%EC%96%B4+9%EC%9C%84+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"head": {
"styledText": "10",
"plainText": "10"
},
"primaryText": {
"styledText": "수능 등급컷",
"plainText": "수능 등급컷"
},
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B2%80%EC%83%89%EC%96%B4+10%EC%9C%84+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
}
],
"itemLayout": "HORIZONTAL",
"title": {
"styledText": "실시간 이슈 검색어",
"plainText": "실시간 이슈 검색어"
},
"ttl": 20000,
"quickReplies": [
{
"plainText": "lg 유플러스 뉴스",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22lg+%EC%9C%A0%ED%94%8C%EB%9F%AC%EC%8A%A4+%EB%89%B4%EC%8A%A4+%ED%8B%80%EC%96%B4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"plainText": "백원우 뉴스",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EB%B0%B1%EC%9B%90%EC%9A%B0+%EB%89%B4%EC%8A%A4+%ED%8B%80%EC%96%B4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"plainText": "올리브영 뉴스",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%98%AC%EB%A6%AC%EB%B8%8C%EC%98%81+%EB%89%B4%EC%8A%A4+%ED%8B%80%EC%96%B4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"plainText": "5등급 차량 조회 뉴스",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%225%EB%93%B1%EA%B8%89+%EC%B0%A8%EB%9F%89+%EC%A1%B0%ED%9A%8C+%EB%89%B4%EC%8A%A4+%ED%8B%80%EC%96%B4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"plainText": "장정윤 작가 뉴스",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%9E%A5%EC%A0%95%EC%9C%A4+%EC%9E%91%EA%B0%80+%EB%89%B4%EC%8A%A4+%ED%8B%80%EC%96%B4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"plainText": "성남 어린이집 성폭행 뉴스",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%84%B1%EB%82%A8+%EC%96%B4%EB%A6%B0%EC%9D%B4%EC%A7%91+%EC%84%B1%ED%8F%AD%ED%96%89+%EB%89%B4%EC%8A%A4+%ED%8B%80%EC%96%B4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"plainText": "김태우 뉴스",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EA%B9%80%ED%83%9C%EC%9A%B0+%EB%89%B4%EC%8A%A4+%ED%8B%80%EC%96%B4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"plainText": "베트남 축구 뉴스",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EB%B2%A0%ED%8A%B8%EB%82%A8+%EC%B6%95%EA%B5%AC+%EB%89%B4%EC%8A%A4+%ED%8B%80%EC%96%B4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"plainText": "쿠우쿠우 뉴스",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%BF%A0%EC%9A%B0%EC%BF%A0%EC%9A%B0+%EB%89%B4%EC%8A%A4+%ED%8B%80%EC%96%B4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"plainText": "수능 등급컷 뉴스",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%88%98%EB%8A%A5+%EB%93%B1%EA%B8%89%EC%BB%B7+%EB%89%B4%EC%8A%A4+%ED%8B%80%EC%96%B4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
}
]
}
}
}
LIST_VERTICAL
LIST_VERTICAL은 사용자 질문에 대한 정답에 순서(순위)가 있거나 후보군이 있을 경우 표시하는 유형입니다. 현재 LIST_VERTICAL이 적용된 도메인으로는 교통정보, 스마트홈, 일정, 장소 검색, 주식 등이 있습니다.
표속성구성 | 분류 | 속성 |
---|---|---|
LIST_VERTICAL | 목록형 | Basic , Interim |
그림오늘 TV 편성표에 대한 답변(TV용)
그림오늘 TV 편성표에 대한 답변(모바일용)
Request
표LIST_VERTICAL Request Body파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
type | String | 필수 |
LIST_VERTICAL 로 지정 |
Object | 필수 |
View Template 타입별 필수 /선택 /미사용 항목이 다름- 선택 항목 미 정의시, View Template에 출력되지 않음 |
|
title | Object: TemplateText | 선택 |
사용자 질문(발화)을 요약해서 표시 - 필수 엔티티 또는 선택 엔티티 등 필요한 정보를 노출 ex) title.plainText : "카카오"- 정보 중요도: title > subtitle - title은 가능한 한 styledText 사용 지양- icon은 텍스트 가독성을 높이기 위한 것으로 특정 엔티티에 국한된 이미지를 사용하지 않음 ex) 프랑스 국기 아이콘 X, 알람/지도 아이콘 O |
subtitle | Object: TemplateText | 선택 |
title을 보조하는 내용 - subtitle을 정의 시 반드시 title이 먼저 정의되어야 함 |
source | Object: TemplateText | 선택 |
콘텐츠 제공 출처 - 정보의 기준 날짜 또는 시간 등을 표시 ex) source.plainText : "7월 26일 오전 2:12 기준, Daum 검색" |
button1 button2 |
Object: TemplateButton | 선택 |
버튼 기능은 다음과 같음 - 버튼은 최대 두 개까지 노출 - 버튼 내 아이콘 사용은 지양 - 버튼 선택은 터치로만 가능(발화로 선택 불가) * 웹뷰(url) 열기: Daum 검색 결과와 상세 페이지 모두 랜딩이 가능한 경우, 1)과 2) 기준에 따라 하나의 웹 뷰를 열 수 있음(ex. 버티컬 엔드 페이지, Daum 검색 결과 페이지) 1) Daum 검색 결과가 더 많은 정보를 주거나 동일한 경우: '다음 검색 결과'로 연결(ex. 유명인 Daum 검색 결과 제공 시, 관련 뉴스 또는 실시간 정보 제공 가능) 2) 엔드 페이지에서만 주는 가치가 있다고 판단될 경우: '상세 페이지'로 연결(ex. 어학 상세 페이지의 예문/발음 듣기, 뉴스 기사의 TTS 지원) * 앱 스킴 * 디바이스 액션(ex. 전화 걸기) |
background | Object: Background | 선택 |
View Template 배경 지정 - 색상, 이미지 등으로 표시 |
itemLayout | String | 필수 |
item 내 primaryText와 secondaryText가 배치되는 레이아웃을 정의 - Horizontal 타입: 수평으로 배치 - Vertical 타입: 수직으로 배치 |
items | Object: Item | 필수 |
사용자에게 되묻는 항목들의 후보군 표시 항목 중 하나 선택 시, 연결되는 동작들을 정의할 수 있음 ex) head.plainText :[순서]primaryText.plainText : [이름]secondaryText.plainText :[연락처]action.Url : *해당 이름/연락처로 전화걸기 동작 수행 |
quickReplies | Object: TemplateButton | 필수 |
quickReplies를 터치한 경우 해당 명령어를 발화한 것과 동일 동작 - 추천 명령어를 구어체로 작성(최소 두 개, 최대 열 개) - Play control(재생/일시정지/다음곡) 관련 명령은 지양 ex) 코스피 지수 알려줘 |
meta | Object: Meta | 선택 |
상세 정보를 확인하는 URL 정보로 톡 템플릿에서 활용 |
utterance (입력) | String | 선택 |
사용자 발화 |
ttl | String | 필수 |
화면 유지 시간 - 기본값: 10,000(msec) - 헤이카카오 앱의 경우 일괄: 300,000(msec) - 결괏값에 따라 다르게 설정 가능 ex) ttl : 10000※ 기존 View Template은 body.data.ttl 로 정의했으나, 2019년 9월 이후 신규 생성하는 View Template은 body.ttl 로 정의해야 함 |
style | String | 필수 |
최종 결과 화면(BASIC)인지 중간 결과 화면(INTERIM)인지 구분 - 기본값: BASIC - 별도 지정하지 않으면 BASIC 값으로 자동 지정 ex) style : "BASIC"※ 기존 View Template은 style 을 정의하지 않았으나, 2019년 9월 이후 신규 생성하는 View Template에서는 반드시 정의해야 함 |
token | String | 필수 |
각 도메인에서 발급하는 토큰 |
안내
Object 별 상세 정의는 Data Type 문서를 참고하시기 바랍니다.
Sample Code
다음 예시는 실시간 검색어에 대한 답변입니다.
코드예제LIST_VERTICAL
{
"type": "Template.Render",
"body": {
"type": "LIST_VERTICAL",
"token": "kakao/5a0940e99418c2c288700549/%7B%22page%22%3A1%7D",
"data": {
"source": {
"styledText": "오전 10:48 기준, Daum검색",
"plainText": "오전 10:48 기준, Daum검색"
},
"items": [
{
"head": {
"styledText": "1",
"plainText": "1"
},
"primaryText": {
"styledText": "lg 유플러스",
"plainText": "lg 유플러스"
},
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B2%80%EC%83%89%EC%96%B4+1%EC%9C%84+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"head": {
"styledText": "2",
"plainText": "2"
},
"primaryText": {
"styledText": "백원우",
"plainText": "백원우"
},
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B2%80%EC%83%89%EC%96%B4+2%EC%9C%84+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"head": {
"styledText": "3",
"plainText": "3"
},
"primaryText": {
"styledText": "올리브영",
"plainText": "올리브영"
},
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B2%80%EC%83%89%EC%96%B4+3%EC%9C%84+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"head": {
"styledText": "4",
"plainText": "4"
},
"primaryText": {
"styledText": "5등급 차량 조회",
"plainText": "5등급 차량 조회"
},
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B2%80%EC%83%89%EC%96%B4+4%EC%9C%84+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"head": {
"styledText": "5",
"plainText": "5"
},
"primaryText": {
"styledText": "장정윤 작가",
"plainText": "장정윤 작가"
},
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B2%80%EC%83%89%EC%96%B4+5%EC%9C%84+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"head": {
"styledText": "6",
"plainText": "6"
},
"primaryText": {
"styledText": "성남 어린이집 성폭행",
"plainText": "성남 어린이집 성폭행"
},
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B2%80%EC%83%89%EC%96%B4+6%EC%9C%84+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"head": {
"styledText": "7",
"plainText": "7"
},
"primaryText": {
"styledText": "김태우",
"plainText": "김태우"
},
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B2%80%EC%83%89%EC%96%B4+7%EC%9C%84+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"head": {
"styledText": "8",
"plainText": "8"
},
"primaryText": {
"styledText": "베트남 축구",
"plainText": "베트남 축구"
},
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B2%80%EC%83%89%EC%96%B4+8%EC%9C%84+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"head": {
"styledText": "9",
"plainText": "9"
},
"primaryText": {
"styledText": "쿠우쿠우",
"plainText": "쿠우쿠우"
},
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B2%80%EC%83%89%EC%96%B4+9%EC%9C%84+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"head": {
"styledText": "10",
"plainText": "10"
},
"primaryText": {
"styledText": "수능 등급컷",
"plainText": "수능 등급컷"
},
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%8B%A4%EC%8B%9C%EA%B0%84+%EA%B2%80%EC%83%89%EC%96%B4+10%EC%9C%84+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
}
],
"itemLayout": "HORIZONTAL",
"title": {
"styledText": "실시간 이슈 검색어",
"plainText": "실시간 이슈 검색어"
},
"ttl": 20000,
"quickReplies": [
{
"plainText": "lg 유플러스 뉴스",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22lg+%EC%9C%A0%ED%94%8C%EB%9F%AC%EC%8A%A4+%EB%89%B4%EC%8A%A4+%ED%8B%80%EC%96%B4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"plainText": "백원우 뉴스",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EB%B0%B1%EC%9B%90%EC%9A%B0+%EB%89%B4%EC%8A%A4+%ED%8B%80%EC%96%B4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"plainText": "올리브영 뉴스",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%98%AC%EB%A6%AC%EB%B8%8C%EC%98%81+%EB%89%B4%EC%8A%A4+%ED%8B%80%EC%96%B4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"plainText": "5등급 차량 조회 뉴스",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%225%EB%93%B1%EA%B8%89+%EC%B0%A8%EB%9F%89+%EC%A1%B0%ED%9A%8C+%EB%89%B4%EC%8A%A4+%ED%8B%80%EC%96%B4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"plainText": "장정윤 작가 뉴스",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%9E%A5%EC%A0%95%EC%9C%A4+%EC%9E%91%EA%B0%80+%EB%89%B4%EC%8A%A4+%ED%8B%80%EC%96%B4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"plainText": "성남 어린이집 성폭행 뉴스",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%84%B1%EB%82%A8+%EC%96%B4%EB%A6%B0%EC%9D%B4%EC%A7%91+%EC%84%B1%ED%8F%AD%ED%96%89+%EB%89%B4%EC%8A%A4+%ED%8B%80%EC%96%B4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"plainText": "김태우 뉴스",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EA%B9%80%ED%83%9C%EC%9A%B0+%EB%89%B4%EC%8A%A4+%ED%8B%80%EC%96%B4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"plainText": "베트남 축구 뉴스",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EB%B2%A0%ED%8A%B8%EB%82%A8+%EC%B6%95%EA%B5%AC+%EB%89%B4%EC%8A%A4+%ED%8B%80%EC%96%B4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"plainText": "쿠우쿠우 뉴스",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%BF%A0%EC%9A%B0%EC%BF%A0%EC%9A%B0+%EB%89%B4%EC%8A%A4+%ED%8B%80%EC%96%B4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
},
{
"plainText": "수능 등급컷 뉴스",
"action": {
"url": "kakaoi://instruction?type=Recognizer.RequestText&body=%7B%22utterance%22%3A%22%EC%88%98%EB%8A%A5+%EB%93%B1%EA%B8%89%EC%BB%B7+%EB%89%B4%EC%8A%A4+%ED%8B%80%EC%96%B4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0940e99418c2c288700549%2F%257B%2522page%2522%253A1%257D%22%7D"
}
}
]
}
}
}
CAROUSEL
CAROUSEL은 사용자 질문의 정답을 최대 열 개까지 “여러 개의 카드 뷰 형태"로 표시하는 유형으로, 단말별로 카드 뷰의 개수를 다르게 노출할 수 있습니다. 현재 CAROUSEL이 적용된 도메인으로는 영화 순위 카드 등이 있습니다.
표속성구성 | 분류 | 속성 |
---|---|---|
CAROUSEL | 목록형 | Basic |
그림박스 오피스 순위에 대한 답변(TV용)
그림박스 오피스 순위에 대한 답변(모바일용)
Request
표CAROUSEL Request Body파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
type | String | 필수 |
CAROUSEL 로 지정 |
Object | 필수 |
View Template 타입별 필수 /선택 /미사용 항목이 다름- 선택 항목 미 정의시, View Template에 출력되지 않음 |
|
title | Object: TemplateText | 선택 |
사용자 질문(발화)을 요약해서 표시 - 필수 엔티티 또는 선택 엔티티 등 필요한 정보를 노출 ex) title.plainText : "카카오"- 정보 중요도: title > subtitle - title은 가능한 한 styledText 사용 지양- icon은 텍스트 가독성을 높이기 위한 것으로 특정 엔티티에 국한된 이미지를 사용하지 않음 ex) 프랑스 국기 아이콘 X, 알람/지도 아이콘 O |
subtitle | Object: TemplateText | 선택 |
title을 보조하는 내용 - subtitle을 정의 시 반드시 title이 먼저 정의되어야 함 |
source | Object: TemplateText | 선택 |
콘텐츠 제공 출처 - 정보의 기준 날짜 또는 시간 등을 표시 ex) source.plainText : "7월 26일 오전 2:12 기준, Daum 검색" |
button1 button2 |
Object: TemplateButton | 선택 |
버튼 기능은 다음과 같음 - 버튼은 최대 두 개까지 노출 - 버튼 내 아이콘 사용은 지양 - 버튼 선택은 터치로만 가능(발화로 선택 불가) * 웹뷰(url) 열기: Daum 검색 결과와 상세 페이지 모두 랜딩이 가능한 경우, 1)과 2) 기준에 따라 하나의 웹 뷰를 열 수 있음(ex. 버티컬 엔드 페이지, Daum 검색 결과 페이지) 1) Daum 검색 결과가 더 많은 정보를 주거나 동일한 경우: '다음 검색 결과'로 연결(ex. 유명인 Daum 검색 결과 제공 시, 관련 뉴스 또는 실시간 정보 제공 가능) 2) 엔드 페이지에서만 주는 가치가 있다고 판단될 경우: '상세 페이지'로 연결(ex. 어학 상세 페이지의 예문/발음 듣기, 뉴스 기사의 TTS 지원) * 앱 스킴 * 디바이스 액션(ex. 전화 걸기) |
background | Object: Background | 선택 |
View Template 배경 지정 - 색상, 이미지 등으로 표시 |
items | Object: Item | 필수 |
사용자 질문의 정답 또는 그 후보군 ex) head.plainText :[순서]primaryText.plainText : [영화 제목]secondaryText.plainText : [개봉 일자] |
quickReplies | Object: TemplateButton | 필수 |
quickReplies를 터치한 경우 해당 명령어를 발화한 것과 동일 동작 - 추천 명령어를 구어체로 작성(최소 두 개, 최대 열 개) - Play control(재생/일시정지/다음곡) 관련 명령은 지양 ex) 코스피 지수 알려줘 |
meta | Object: Meta | 선택 |
상세 정보를 확인하는 URL 정보로 톡 템플릿에서 활용 |
utterance(입력) | String | 선택 |
사용자 발화 |
ttl | String | 필수 |
화면 유지 시간 - 기본값: 10,000(msec) - 헤이카카오 앱의 경우 일괄: 300,000(msec) - 결괏값에 따라 다르게 설정 가능 ex) ttl : 10000※ 기존 View Template은 body.data.ttl 로 정의했으나, 2019년 9월 이후 신규 생성하는 View Template은 body.ttl 로 정의해야 함 |
style | String | 필수 |
최종 결과 화면(BASIC)인지 중간 결과 화면(INTERIM)인지 구분 - 기본값: BASIC - 별도 지정하지 않으면 BASIC 값으로 자동 지정 ex) style : "BASIC"※ 기존 View Template은 style 을 정의하지 않았으나, 2019년 9월 이후 신규 생성하는 View Template에서는 반드시 정의해야 함 |
token | String | 필수 |
각 도메인에서 발급하는 토큰 |
안내
Object 별 상세 정의는 Data Type 문서를 참고하시기 바랍니다.
Sample Code
다음 예시는 이번 주 영화 순위에 대한 답변입니다.
코드예제CAROUSEL
{
"type": "Template.Render",
"body": {
"type": "CAROUSEL",
"data": {
"subtitle": {
"thumbnail": {}
},
"source": {
"plainText": "12월 1일 기준, Daum검색",
"styledText": "12월 1일 기준, Daum검색",
"thumbnail": {}
},
"button2": {
"thumbnail": {},
"action": {}
},
"background": {
"thumbnail": {}
},
"items": [
{
"secondaryText": {
"plainText": "11월 21일 개봉",
"styledText": "11월 21일 개봉",
"thumbnail": {}
},
"head": {
"plainText": "1위",
"styledText": "1위",
"thumbnail": {}
},
"tertiaryText": {
"thumbnail": {}
},
"tail": {
"thumbnail": {}
},
"thumbnail": {},
"primaryText": {
"plainText": "겨울왕국 2",
"styledText": "겨울왕국 2",
"thumbnail": {}
},
"imageUrl": "http://search1.daumcdn.net/thumb/C600x800/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fmovie%2F5afd212b68e34e61a964d969dd898e2f1574298873981",
"action": {
"url": "kakaoi://instruction?body=%7B%22utterance%22%3A%22%EC%98%81%ED%99%94+%EA%B2%A8%EC%9A%B8%EC%99%95%EA%B5%AD+2+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0908019418c2c288700497%2Fd41d8cd98f00b204e9800998ecf8427e%22%7D&type=Recognizer.RequestText"
}
},
{
"secondaryText": {
"plainText": "11월 27일 개봉",
"styledText": "11월 27일 개봉",
"thumbnail": {}
},
"head": {
"plainText": "2위",
"styledText": "2위",
"thumbnail": {}
},
"tertiaryText": {
"thumbnail": {}
},
"tail": {
"thumbnail": {}
},
"thumbnail": {},
"primaryText": {
"plainText": "나를 찾아줘",
"styledText": "나를 찾아줘",
"thumbnail": {}
},
"imageUrl": "http://search1.daumcdn.net/thumb/C600x800/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fmovie%2Fd578c5d478bf43b09bfb7e9f8cd72bf01573095574793",
"action": {
"url": "kakaoi://instruction?body=%7B%22utterance%22%3A%22%EC%98%81%ED%99%94+%EB%82%98%EB%A5%BC+%EC%B0%BE%EC%95%84%EC%A4%98+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0908019418c2c288700497%2Fd41d8cd98f00b204e9800998ecf8427e%22%7D&type=Recognizer.RequestText"
}
},
{
"secondaryText": {
"plainText": "11월 13일 개봉",
"styledText": "11월 13일 개봉",
"thumbnail": {}
},
"head": {
"plainText": "3위",
"styledText": "3위",
"thumbnail": {}
},
"tertiaryText": {
"thumbnail": {}
},
"tail": {
"thumbnail": {}
},
"thumbnail": {},
"primaryText": {
"plainText": "블랙머니",
"styledText": "블랙머니",
"thumbnail": {}
},
"imageUrl": "http://search1.daumcdn.net/thumb/C600x800/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fmovie%2Ffbe0d4ccc4804448a8aacb9e98ccccfe1573614596648",
"action": {
"url": "kakaoi://instruction?body=%7B%22utterance%22%3A%22%EC%98%81%ED%99%94+%EB%B8%94%EB%9E%99%EB%A8%B8%EB%8B%88+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0908019418c2c288700497%2Fd41d8cd98f00b204e9800998ecf8427e%22%7D&type=Recognizer.RequestText"
}
},
{
"secondaryText": {
"plainText": "11월 27일 개봉",
"styledText": "11월 27일 개봉",
"thumbnail": {}
},
"head": {
"plainText": "4위",
"styledText": "4위",
"thumbnail": {}
},
"tertiaryText": {
"thumbnail": {}
},
"tail": {
"thumbnail": {}
},
"thumbnail": {},
"primaryText": {
"plainText": "크롤",
"styledText": "크롤",
"thumbnail": {}
},
"imageUrl": "http://search1.daumcdn.net/thumb/C600x800/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fmovie%2F3f1116b074df4f82884b658a1040f4f61574913201459",
"action": {
"url": "kakaoi://instruction?body=%7B%22utterance%22%3A%22%EC%98%81%ED%99%94+%ED%81%AC%EB%A1%A4+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0908019418c2c288700497%2Fd41d8cd98f00b204e9800998ecf8427e%22%7D&type=Recognizer.RequestText"
}
},
{
"secondaryText": {
"plainText": "11월 27일 개봉",
"styledText": "11월 27일 개봉",
"thumbnail": {}
},
"head": {
"plainText": "5위",
"styledText": "5위",
"thumbnail": {}
},
"tertiaryText": {
"thumbnail": {}
},
"tail": {
"thumbnail": {}
},
"thumbnail": {},
"primaryText": {
"plainText": "러브 앳",
"styledText": "러브 앳",
"thumbnail": {}
},
"imageUrl": "http://search1.daumcdn.net/thumb/C600x800/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fmovie%2Ff0ec61df32ea4ebe95f0ebabce74307f1572593282958",
"action": {
"url": "kakaoi://instruction?body=%7B%22utterance%22%3A%22%EC%98%81%ED%99%94+%EB%9F%AC%EB%B8%8C+%EC%95%B3+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0908019418c2c288700497%2Fd41d8cd98f00b204e9800998ecf8427e%22%7D&type=Recognizer.RequestText"
}
}
],
"meta": {},
"itemLayout": "VERTICAL",
"title": {
"plainText": "박스오피스",
"styledText": "박스오피스",
"thumbnail": {}
},
"ttl": 20000,
"button1": {
"thumbnail": {},
"action": {}
},
"quickReplies": [
{
"plainText": "영화 겨울왕국 2 줄거리 알려줘",
"thumbnail": {},
"action": {
"url": "kakaoi://instruction?body=%7B%22utterance%22%3A%22%EC%98%81%ED%99%94+%EA%B2%A8%EC%9A%B8%EC%99%95%EA%B5%AD+2+%EC%A4%84%EA%B1%B0%EB%A6%AC+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0908019418c2c288700497%2Fd41d8cd98f00b204e9800998ecf8427e%22%7D&type=Recognizer.RequestText"
}
},
{
"plainText": "영화 겨울왕국 2 평점 알려줘",
"thumbnail": {},
"action": {
"url": "kakaoi://instruction?body=%7B%22utterance%22%3A%22%EC%98%81%ED%99%94+%EA%B2%A8%EC%9A%B8%EC%99%95%EA%B5%AD+2+%ED%8F%89%EC%A0%90+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0908019418c2c288700497%2Fd41d8cd98f00b204e9800998ecf8427e%22%7D&type=Recognizer.RequestText"
}
},
{
"plainText": "영화 겨울왕국 2 출연자 알려줘",
"thumbnail": {},
"action": {
"url": "kakaoi://instruction?body=%7B%22utterance%22%3A%22%EC%98%81%ED%99%94+%EA%B2%A8%EC%9A%B8%EC%99%95%EA%B5%AD+2+%EC%B6%9C%EC%97%B0%EC%9E%90+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0908019418c2c288700497%2Fd41d8cd98f00b204e9800998ecf8427e%22%7D&type=Recognizer.RequestText"
}
},
{
"plainText": "영화 나를 찾아줘 줄거리 알려줘",
"thumbnail": {},
"action": {
"url": "kakaoi://instruction?body=%7B%22utterance%22%3A%22%EC%98%81%ED%99%94+%EB%82%98%EB%A5%BC+%EC%B0%BE%EC%95%84%EC%A4%98+%EC%A4%84%EA%B1%B0%EB%A6%AC+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0908019418c2c288700497%2Fd41d8cd98f00b204e9800998ecf8427e%22%7D&type=Recognizer.RequestText"
}
},
{
"plainText": "영화 나를 찾아줘 평점 알려줘",
"thumbnail": {},
"action": {
"url": "kakaoi://instruction?body=%7B%22utterance%22%3A%22%EC%98%81%ED%99%94+%EB%82%98%EB%A5%BC+%EC%B0%BE%EC%95%84%EC%A4%98+%ED%8F%89%EC%A0%90+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0908019418c2c288700497%2Fd41d8cd98f00b204e9800998ecf8427e%22%7D&type=Recognizer.RequestText"
}
},
{
"plainText": "영화 나를 찾아줘 출연자 알려줘",
"thumbnail": {},
"action": {
"url": "kakaoi://instruction?body=%7B%22utterance%22%3A%22%EC%98%81%ED%99%94+%EB%82%98%EB%A5%BC+%EC%B0%BE%EC%95%84%EC%A4%98+%EC%B6%9C%EC%97%B0%EC%9E%90+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0908019418c2c288700497%2Fd41d8cd98f00b204e9800998ecf8427e%22%7D&type=Recognizer.RequestText"
}
},
{
"plainText": "영화 블랙머니 줄거리 알려줘",
"thumbnail": {},
"action": {
"url": "kakaoi://instruction?body=%7B%22utterance%22%3A%22%EC%98%81%ED%99%94+%EB%B8%94%EB%9E%99%EB%A8%B8%EB%8B%88+%EC%A4%84%EA%B1%B0%EB%A6%AC+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0908019418c2c288700497%2Fd41d8cd98f00b204e9800998ecf8427e%22%7D&type=Recognizer.RequestText"
}
},
{
"plainText": "영화 블랙머니 평점 알려줘",
"thumbnail": {},
"action": {
"url": "kakaoi://instruction?body=%7B%22utterance%22%3A%22%EC%98%81%ED%99%94+%EB%B8%94%EB%9E%99%EB%A8%B8%EB%8B%88+%ED%8F%89%EC%A0%90+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0908019418c2c288700497%2Fd41d8cd98f00b204e9800998ecf8427e%22%7D&type=Recognizer.RequestText"
}
},
{
"plainText": "영화 블랙머니 출연자 알려줘",
"thumbnail": {},
"action": {
"url": "kakaoi://instruction?body=%7B%22utterance%22%3A%22%EC%98%81%ED%99%94+%EB%B8%94%EB%9E%99%EB%A8%B8%EB%8B%88+%EC%B6%9C%EC%97%B0%EC%9E%90+%EC%95%8C%EB%A0%A4%EC%A4%98%22%2C%22token%22%3A%22kakao%2F5a0908019418c2c288700497%2Fd41d8cd98f00b204e9800998ecf8427e%22%7D&type=Recognizer.RequestText"
}
}
]
},
"token": "kakao/5a0908019418c2c288700497/d41d8cd98f00b204e9800998ecf8427e"
}
}
기타
CHAT_BUBBLE
표속성구성 | 분류 | 속성 |
---|---|---|
CHAT_BUBBLE | 기타 | Basic |
CHAT_BUBBLE은 기기가 음성 안내를 지원하지 못하는 환경에서 카카오 i의 음성 안내 내용을 자막처럼 표시하는 유형입니다. 이 유형은 음성 안내 내용을 텍스트로 표시하고 그 외의 정보는 최소화합니다.
예를 들어, 카카오 i 서비스 시스템을 사용하려는 기기에 마이크가 있어 사용자의 음성 명령 입력은 가능하지만, 기기 자체에 스피커가 없어 카카오 i의 음성 안내를 출력할 수 없는 경우 CHAT_BUBBLE을 사용하여 카카오 i의 음성 답변 내용을 자막처럼 표시합니다.
안내
결과 안내는 FULL_TEXT 타입을 사용합니다.
그림CHAT_BUBBLE
Request
표CHAT_BUBBLE Request Body파라미터 | 타입 | 필수 여부 | 설명 |
---|---|---|---|
type | String | 필수 |
instruction: CHAT_BUBBLE |
Object | 필수 |
View Template 타입별 필수 /선택 /미사용 항목이 다름- 선택 항목 미 정의시, View Template에 출력되지 않음 |
|
content | Object: Content | 필수 |
사용자 질문에 대한 정답(상세 내용) 표시 ex) contents.paragraph.plainText |
ttl | String | 선택 |
화면 유지 시간 재질의 조건: 60,000(msec) 결과 안내 조건: 도메인마다 정의값 다름 ex) ttl : 60,000 |
style | String | 필수 |
대화 세션 중간에 표시할 때는 "INTERIM"으로 정의 대화 완료 후 최종 결괏값을 표시할 때는 "BASIC"으로 정의 ex) style : "INTERIM" |
token | String | 선택 |
각 도메인에서 발급하는 토큰 |
안내
Object 별 상세 정의는 Data Type 문서를 참고하시기 바랍니다.
Sample Code
코드예제CHAT_BUBBLE
{
"type": "ChatBubble.Render",
"body": {
"mood": "neutral",
"style": "BASIC",
"text": "검색한 결과, 조앤롤링 제예요",
"token": "_/_/shadow-fde6a0f6-20cd-4daf-ae9f-aabc5e23e22b",
"ttl": 60000
}
}