이 문서는 카카오톡 메시지 API 또는 카카오톡 공유 API로 보낼 메시지를 사전 정의(Predefined)된 기본 템플릿으로 구성하는 방법을 안내합니다.
기본 템플릿은 정의된 형식에 따라 메시지를 객체 형태로 구성한 템플릿 형식입니다. 기본 템플릿에 대한 특징은 이해하기를 참고합니다.
피드 템플릿을 사용하려면 아래와 같이 객체를 구성해야 합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
object_type | String |
feed 로 고정 |
O |
content | Content |
메시지의 메인 콘텐츠 정보 | O |
item_content | ItemContent |
아이템 영역에 포함할 콘텐츠 피드 B형으로 구성할 경우 사용 |
X |
social | Social |
콘텐츠에 대한 소셜 정보 | X |
button_title | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | Buttons[] |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 피드 템플릿 메시지 구성을 위한 template_object 구성 예시
{
"object_type": "feed",
"content": {
"title": "오늘의 디저트",
"description": "아메리카노, 빵, 케익",
"image_url": "https://mud-kage.kakao.com/dn/NTmhS/btqfEUdFAUf/FjKzkZsnoeE4o19klTOVI1/openlink_640x640s.jpg",
"image_width": 640,
"image_height": 640,
"link": {
"web_url": "http://www.daum.net",
"mobile_web_url": "http://m.daum.net",
"android_execution_params": "contentId=100",
"ios_execution_params": "contentId=100"
}
},
"item_content" : {
"profile_text" :"Kakao",
"profile_image_url" :"https://mud-kage.kakao.com/dn/Q2iNx/btqgeRgV54P/VLdBs9cvyn8BJXB3o7N8UK/kakaolink40_original.png",
"title_image_url" : "https://mud-kage.kakao.com/dn/Q2iNx/btqgeRgV54P/VLdBs9cvyn8BJXB3o7N8UK/kakaolink40_original.png",
"title_image_text" :"Cheese cake",
"title_image_category" : "Cake",
"items" : [
{
"item" :"Cake1",
"item_op" : "1000원"
},
{
"item" :"Cake2",
"item_op" : "2000원"
},
{
"item" :"Cake3",
"item_op" : "3000원"
},
{
"item" :"Cake4",
"item_op" : "4000원"
},
{
"item" :"Cake5",
"item_op" : "5000원"
}
],
"sum" :"Total",
"sum_op" : "15000원"
},
"social": {
"like_count": 100,
"comment_count": 200,
"shared_count": 300,
"view_count": 400,
"subscriber_count": 500
},
"buttons": [
{
"title": "웹으로 이동",
"link": {
"web_url": "http://www.daum.net",
"mobile_web_url": "http://m.daum.net"
}
},
{
"title": "앱으로 이동",
"link": {
"android_execution_params": "contentId=100",
"ios_execution_params": "contentId=100"
}
}
]
}'
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
objectType | String |
feed 로 고정 |
O |
content | ContentObject |
메시지의 메인 콘텐츠 정보 | O |
itemContent | ItemContentObject |
아이템 영역에 포함할 콘텐츠 피드 B형으로 구성할 경우 사용 |
X |
social | SocialObject |
콘텐츠에 대한 소셜 정보 | X |
buttonTitle | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | Array.<ButtonObject> |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 피드 템플릿 메시지 구성을 위한 template_object 구성 예시
{
objectType: 'feed',
content: {
title: '오늘의 디저트',
description: '아메리카노, 빵, 케익',
imageUrl:
'https://mud-kage.kakao.com/dn/NTmhS/btqfEUdFAUf/FjKzkZsnoeE4o19klTOVI1/openlink_640x640s.jpg',
link: {
mobileWebUrl: 'https://developers.kakao.com',
webUrl: 'https://developers.kakao.com',
},
},
itemContent: {
profileText: 'Kakao',
profileImageUrl: 'https://mud-kage.kakao.com/dn/Q2iNx/btqgeRgV54P/VLdBs9cvyn8BJXB3o7N8UK/kakaolink40_original.png',
titleImageUrl: 'https://mud-kage.kakao.com/dn/Q2iNx/btqgeRgV54P/VLdBs9cvyn8BJXB3o7N8UK/kakaolink40_original.png',
titleImageText: 'Cheese cake',
titleImageCategory: 'Cake',
items: [
{
item: 'Cake1',
itemOp: '1000원',
},
{
item: 'Cake2',
itemOp: '2000원',
},
{
item: 'Cake3',
itemOp: '3000원',
},
{
item: 'Cake4',
itemOp: '4000원',
},
{
item: 'Cake5',
itemOp: '5000원',
},
],
sum: '총 결제금액',
sumOp: '15000원',
},
social: {
likeCount: 10,
commentCount: 20,
sharedCount: 30,
},
buttons: [
{
title: '웹으로 이동',
link: {
mobileWebUrl: 'https://developers.kakao.com',
webUrl: 'https://developers.kakao.com',
},
},
{
title: '앱으로 이동',
link: {
mobileWebUrl: 'https://developers.kakao.com',
webUrl: 'https://developers.kakao.com',
},
},
],
}
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
content | Content |
메시지의 메인 콘텐츠 정보 | O |
itemContent | ItemContent |
아이템 영역에 포함할 콘텐츠 피드 B형으로 구성할 경우 사용 |
X |
social | Social |
콘텐츠에 대한 소셜 정보 | X |
buttonTitle | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | List<Button> |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 피드 템플릿 메시지 구성을 위한 FeedTemplate 클래스 구성 예시
val defaultFeed = FeedTemplate(
content = Content(
title = "오늘의 디저트",
description = "#케익 #딸기 #삼평동 #카페 #분위기 #소개팅",
imageUrl = "https://mud-kage.kakao.com/dn/Q2iNx/btqgeRgV54P/VLdBs9cvyn8BJXB3o7N8UK/kakaolink40_original.png",
link = Link(
webUrl = "https://developers.kakao.com",
mobileWebUrl = "https://developers.kakao.com"
)
),
itemContent = ItemContent(
profileText = "Kakao",
profileImageUrl = "https://mud-kage.kakao.com/dn/Q2iNx/btqgeRgV54P/VLdBs9cvyn8BJXB3o7N8UK/kakaolink40_original.png",
titleImageUrl = "https://mud-kage.kakao.com/dn/Q2iNx/btqgeRgV54P/VLdBs9cvyn8BJXB3o7N8UK/kakaolink40_original.png",
titleImageText = "Cheese cake",
titleImageCategory = "Cake",
items = listOf(
ItemInfo(item = "cake1", itemOp = "1000원"),
ItemInfo(item = "cake2", itemOp = "2000원"),
ItemInfo(item = "cake3", itemOp = "3000원"),
ItemInfo(item = "cake4", itemOp = "4000원"),
ItemInfo(item = "cake5", itemOp = "5000원")
),
sum = "Total",
sumOp = "15000원"
),
social = Social(
likeCount = 286,
commentCount = 45,
sharedCount = 845
),
buttons = listOf(
Button(
"웹으로 보기",
Link(
webUrl = "https://developers.kakao.com",
mobileWebUrl = "https://developers.kakao.com"
)
),
Button(
"앱으로 보기",
Link(
androidExecutionParams = mapOf("key1" to "value1", "key2" to "value2"),
iosExecutionParams = mapOf("key1" to "value1", "key2" to "value2")
)
)
)
)
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
content | Content |
메시지의 메인 콘텐츠 정보 | O |
itemContent | ItemContent |
아이템 영역에 포함할 콘텐츠 피드 B형으로 구성할 경우 사용 |
X |
social | Social |
콘텐츠에 대한 소셜 정보 | X |
buttonTitle | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | [Button] |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 피드 템플릿 메시지 구성을 위한 FeedTemplate 클래스 구성 예시
let title = "피드 메시지"
let description = "피드 메시지 예제"
let feedTemplateJsonStringData =
"""
{
"object_type": "feed",
"content": {
"title": "오늘의 디저트",
"description": "#케익 #딸기 #삼평동 #카페 #분위기 #소개팅",
"image_url": "https://mud-kage.kakao.com/dn/Q2iNx/btqgeRgV54P/VLdBs9cvyn8BJXB3o7N8UK/kakaolink40_original.png",
"link": {
"mobile_web_url": "https://developers.kakao.com",
"web_url": "https://developers.kakao.com"
}
},
"item_content" : {
"profile_text" :"Kakao",
"profile_image_url" :"https://mud-kage.kakao.com/dn/Q2iNx/btqgeRgV54P/VLdBs9cvyn8BJXB3o7N8UK/kakaolink40_original.png",
"title_image_url" : "https://mud-kage.kakao.com/dn/Q2iNx/btqgeRgV54P/VLdBs9cvyn8BJXB3o7N8UK/kakaolink40_original.png",
"title_image_text" :"Cheese cake",
"title_image_category" : "Cake",
"items" : [
{
"item" :"Cake1",
"item_op" : "1000원"
},
{
"item" :"Cake2",
"item_op" : "2000원"
},
{
"item" :"Cake3",
"item_op" : "3000원"
},
{
"item" :"Cake4",
"item_op" : "4000원"
},
{
"item" :"Cake5",
"item_op" : "5000원"
}
],
"sum" :"Total",
"sum_op" : "15000원"
},
"social": {
"comment_count": 45,
"like_count": 286,
"shared_count": 845
},
"buttons": [
{
"title": "웹으로 보기",
"link": {
"mobile_web_url": "https://developers.kakao.com",
"web_url": "https://developers.kakao.com"
}
},
{
"title": "앱으로 보기",
"link": {
"android_execution_params": "key1=value1&key2=value2",
"ios_execution_params": "key1=value1&key2=value2"
}
}
]
}
""".data(using: .utf8)!
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
content | Content |
메시지의 메인 콘텐츠 정보 | O |
itemContent | ItemContent |
아이템 영역에 포함할 콘텐츠 피드 B형으로 구성할 경우 사용 |
X |
social | Social |
콘텐츠에 대한 소셜 정보 | X |
buttonTitle | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | List<Button> |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 피드 템플릿 메시지 구성을 위한 FeedTemplate 클래스 구성 예시
final FeedTemplate defaultFeed = FeedTemplate(
content: Content(
title: '딸기 치즈 케익',
description: '#케익 #딸기 #삼평동 #카페 #분위기 #소개팅',
imageUrl: Uri.parse(
'https://mud-kage.kakao.com/dn/Q2iNx/btqgeRgV54P/VLdBs9cvyn8BJXB3o7N8UK/kakaolink40_original.png'),
link: Link(
webUrl: Uri.parse('https://developers.kakao.com'),
mobileWebUrl: Uri.parse('https://developers.kakao.com')),
),
itemContent: ItemContent(
profileText: 'Kakao',
profileImageUrl: Uri.parse(
'https://mud-kage.kakao.com/dn/Q2iNx/btqgeRgV54P/VLdBs9cvyn8BJXB3o7N8UK/kakaolink40_original.png'),
titleImageUrl: Uri.parse(
'https://mud-kage.kakao.com/dn/Q2iNx/btqgeRgV54P/VLdBs9cvyn8BJXB3o7N8UK/kakaolink40_original.png'),
titleImageText: 'Cheese cake',
titleImageCategory: 'cake',
items: [
ItemInfo(item: 'cake1', itemOp: '1000원'),
ItemInfo(item: 'cake2', itemOp: '2000원'),
ItemInfo(item: 'cake3', itemOp: '3000원'),
ItemInfo(item: 'cake4', itemOp: '4000원'),
ItemInfo(item: 'cake5', itemOp: '5000원')
],
sum: 'total',
sumOp: '15000원',
),
social: Social(likeCount: 286, commentCount: 45, sharedCount: 845),
buttons: [
Button(
title: '웹으로 보기',
link: Link(
webUrl: Uri.parse('https: //developers.kakao.com'),
mobileWebUrl: Uri.parse('https: //developers.kakao.com'),
),
),
Button(
title: '앱으로보기',
link: Link(
androidExecutionParams: {'key1': 'value1', 'key2': 'value2'},
iosExecutionParams: {'key1': 'value1', 'key2': 'value2'},
),
),
],
);
리스트 템플릿을 사용하려면 아래와 같이 객체를 구성해야 합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
object_type | String |
list 로 고정 |
O |
header_title | String |
리스트 상단에 노출되는 메인 타이틀, 최대 200자 | O |
header_link | Link |
헤더 타이틀 내용에 해당하는 링크 정보 | O |
contents | Content[] |
리스트에 노출되는 콘텐츠 목록, 2개 이상 필수, 최대 3개 | O |
button_title | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | Buttons[] |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 리스트 템플릿 메시지의 template_object 구성 예시
{
"object_type": "list",
"header_title": "WEEKELY MAGAZINE",
"header_link": {
"web_url": "http://www.daum.net",
"mobile_web_url": "http://m.daum.net",
"android_execution_params": "main",
"ios_execution_params": "main"
},
"contents": [
{
"title": "자전거 라이더를 위한 공간",
"description": "매거진",
"image_url": "https://mud-kage.kakao.com/dn/QNvGY/btqfD0SKT9m/k4KUlb1m0dKPHxGV8WbIK1/openlink_640x640s.jpg",
"image_width": 640,
"image_height": 640,
"link": {
"web_url": "http://www.daum.net/contents/1",
"mobile_web_url": "http://m.daum.net/contents/1",
"android_execution_params": "/contents/1",
"ios_execution_params": "/contents/1"
}
},
{
"title": "비쥬얼이 끝내주는 오레오 카푸치노",
"description": "매거진",
"image_url": "https://mud-kage.kakao.com/dn/boVWEm/btqfFGlOpJB/mKsq9z6U2Xpms3NztZgiD1/openlink_640x640s.jpg",
"image_width": 640,
"image_height": 640,
"link": {
"web_url": "http://www.daum.net/contents/2",
"mobile_web_url": "http://m.daum.net/contents/2",
"android_execution_params": "/contents/2",
"ios_execution_params": "/contents/2"
}
},
{
"title": "감성이 가득한 분위기",
"description": "매거진",
"image_url": "https://mud-kage.kakao.com/dn/NTmhS/btqfEUdFAUf/FjKzkZsnoeE4o19klTOVI1/openlink_640x640s.jpg",
"image_width": 640,
"image_height": 640,
"link": {
"web_url": "http://www.daum.net/contents/3",
"mobile_web_url": "http://m.daum.net/contents/3",
"android_execution_params": "/contents/3",
"ios_execution_params": "/contents/3"
}
}
],
"buttons": [
{
"title": "웹으로 이동",
"link": {
"web_url": "http://www.daum.net",
"mobile_web_url": "http://m.daum.net"
}
},
{
"title": "앱으로 이동",
"link": {
"android_execution_params": "main",
"ios_execution_params": "main"
}
}
]
}'
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
objectType | String |
list 로 고정 |
O |
headerTitle | String |
리스트 상단에 노출되는 메인 타이틀, 최대 200자 | O |
headerLink | LinkObject |
헤더 타이틀 내용에 해당하는 링크 정보 | O |
contents | Array.<ContentObject> |
리스트에 노출되는 콘텐츠 목록, 2개 이상 필수, 최대 3개 | O |
buttonTitle | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | Array.<ButtonObject> |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 리스트 템플릿 메시지의 template_object 구성 예시
{
objectType: 'list',
headerTitle: 'WEEKLY MAGAZINE',
headerLink: {
mobileWebUrl: 'https://developers.kakao.com',
webUrl: 'https://developers.kakao.com',
},
contents: [
{
title: '취미의 특징, 탁구',
description: '스포츠',
imageUrl:
'http://k.kakaocdn.net/dn/bDPMIb/btqgeoTRQvd/49BuF1gNo6UXkdbKecx600/kakaolink40_original.png',
link: {
mobileWebUrl: 'https://developers.kakao.com',
webUrl: 'https://developers.kakao.com',
},
},
{
title: '크림으로 이해하는 커피이야기',
description: '음식',
imageUrl:
'http://k.kakaocdn.net/dn/QPeNt/btqgeSfSsCR/0QJIRuWTtkg4cYc57n8H80/kakaolink40_original.png',
link: {
mobileWebUrl: 'https://developers.kakao.com',
webUrl: 'https://developers.kakao.com',
},
},
{
title: '감성이 가득한 분위기',
description: '사진',
imageUrl:
'http://k.kakaocdn.net/dn/c7MBX4/btqgeRgWhBy/ZMLnndJFAqyUAnqu4sQHS0/kakaolink40_original.png',
link: {
mobileWebUrl: 'https://developers.kakao.com',
webUrl: 'https://developers.kakao.com',
},
},
],
buttons: [
{
title: '웹으로 보기',
link: {
mobileWebUrl: 'https://developers.kakao.com',
webUrl: 'https://developers.kakao.com',
},
},
{
title: '앱으로 보기',
link: {
mobileWebUrl: 'https://developers.kakao.com',
webUrl: 'https://developers.kakao.com',
},
},
],
}
JavaScript SDK를 사용할 때는 카카오톡 공유 API와 카카오톡 메시지 API에서 메시지 구성 필드값이 서로 다르므로, 아래 예제를 참고하여 각각에 맞는 형식으로 구현해야 합니다.
* Kakao SDK for JavaScript로 카카오톡 메시지 API 호출 시, 필드명에 REST API와 동일하게 스네이크 케이스(Snake case) 적용
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
headerTitle | String |
리스트 상단에 노출되는 메인 타이틀, 최대 200자 | O |
headerLink | Link |
헤더 타이틀 내용에 해당하는 링크 정보 | O |
contents | List<Content> |
리스트에 노출되는 콘텐츠 목록, 2개 이상 필수, 최대 3개 | O |
buttonTitle | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | List<Button> |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 리스트 템플릿 메시지 구성을 위한 ListTemplate 클래스 구성 예시
val defaultList = ListTemplate(
headerTitle = "WEEKLY MAGAZINE",
headerLink = Link(
webUrl = "https://developers.kakao.com",
mobileWebUrl = "https://developers.kakao.com"
),
contents = listOf(
Content(
title = "취미의 특징, 탁구",
description = "스포츠",
imageUrl = "https://mud-kage.kakao.com/dn/bDPMIb/btqgeoTRQvd/49BuF1gNo6UXkdbKecx600/kakaolink40_original.png",
link = Link(
webUrl = "https://developers.kakao.com",
mobileWebUrl = "https://developers.kakao.com"
)
),
Content(
title = "크림으로 이해하는 커피이야기",
description = "음식",
imageUrl = "https://mud-kage.kakao.com/dn/QPeNt/btqgeSfSsCR/0QJIRuWTtkg4cYc57n8H80/kakaolink40_original.png",
link = Link(
webUrl = "https://developers.kakao.com",
mobileWebUrl = "https://developers.kakao.com"
)
),
Content(
title = "감성이 가득한 분위기",
description = "사진",
imageUrl = "https://mud-kage.kakao.com/dn/c7MBX4/btqgeRgWhBy/ZMLnndJFAqyUAnqu4sQHS0/kakaolink40_original.png",
link = Link(
webUrl = "https://developers.kakao.com",
mobileWebUrl = "https://developers.kakao.com"
)
)
),
buttons = listOf(
Button(
"웹으로 보기",
Link(
webUrl = "https://developers.kakao.com",
mobileWebUrl = "https://developers.kakao.com"
)
),
Button(
"앱으로 보기",
Link(
androidExecutionParams = mapOf("key1" to "value1", "key2" to "value2"),
iosExecutionParams = mapOf("key1" to "value1", "key2" to "value2")
)
)
)
)
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
headerTitle | String |
리스트 상단에 노출되는 메인 타이틀, 최대 200자 | O |
headerLink | Link |
헤더 타이틀 내용에 해당하는 링크 정보 | O |
contents | [Content] |
리스트에 노출되는 콘텐츠 목록, 2개 이상 필수, 최대 3개 | O |
buttonTitle | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | [Button] |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 리스트 템플릿 메시지 구성을 위한 ListTemplate 클래스 구성 예시
let headerTitle = "리스트 메시지 예제"
let listTemplateJsonStringData =
"""
{
"object_type": "list",
"header_title": "WEEKLY MAGAZINE",
"header_link": {
"mobile_web_url": "https://developers.kakao.com",
"web_url": "https://developers.kakao.com"
},
"contents": [
{
"title": "취미의 특징, 탁구",
"description": "스포츠",
"image_url": "https://mud-kage.kakao.com/dn/bDPMIb/btqgeoTRQvd/49BuF1gNo6UXkdbKecx600/kakaolink40_original.png",
"link": {
"mobile_web_url": "https://developers.kakao.com",
"web_url": "https://developers.kakao.com"
}
},
{
"title": "크림으로 이해하는 커피이야기",
"description": "음식",
"image_url": "https://mud-kage.kakao.com/dn/QPeNt/btqgeSfSsCR/0QJIRuWTtkg4cYc57n8H80/kakaolink40_original.png",
"link": {
"mobile_web_url": "https://developers.kakao.com",
"web_url": "https://developers.kakao.com"
}
},
{
"title": "감성이 가득한 분위기",
"description": "사진",
"image_url": "https://mud-kage.kakao.com/dn/c7MBX4/btqgeRgWhBy/ZMLnndJFAqyUAnqu4sQHS0/kakaolink40_original.png",
"link": {
"mobile_web_url": "https://developers.kakao.com",
"web_url": "https://developers.kakao.com"
}
}
],
"buttons": [
{
"title": "웹으로 보기",
"link": {
"mobile_web_url": "https://developers.kakao.com",
"web_url": "https://developers.kakao.com"
}
},
{
"title": "앱으로 보기",
"link": {
"android_execution_params": "key1=value1&key2=value2",
"ios_execution_params": "key1=value1&key2=value2"
}
}
]
}
""".data(using: .utf8)!
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
headerTitle | String |
리스트 상단에 노출되는 메인 타이틀, 최대 200자 | O |
headerLink | Link |
헤더 타이틀 내용에 해당하는 링크 정보 | O |
contents | List<Content> |
리스트에 노출되는 콘텐츠 목록, 2개 이상 필수, 최대 3개 | O |
buttonTitle | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | List<Button> |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 리스트 템플릿 메시지 구성을 위한 ListTemplate 클래스 구성 예시
final ListTemplate defaultList = ListTemplate(
headerTitle: 'WEEKLY MAGAZINE',
headerLink: Link(
webUrl: Uri.parse('https://developers.kakao.com'),
mobileWebUrl: Uri.parse('https://developers.kakao.com'),
),
contents: [
Content(
title: 'My hobby, Table tennis',
description: 'Sports',
imageUrl: Uri.parse(
'https://mud-kage.kakao.com/dn/bDPMIb/btqgeoTRQvd/49BuF1gNo6UXkdbKecx600/kakaolink40_original.png'),
link: Link(
webUrl: Uri.parse('https://developers.kakao.com'),
mobileWebUrl: Uri.parse('https://developers.kakao.com'),
),
),
Content(
title: 'Understanding coffee with cream',
description: 'Food',
imageUrl: Uri.parse(
'https://mud-kage.kakao.com/dn/QPeNt/btqgeSfSsCR/0QJIRuWTtkg4cYc57n8H80/kakaolink40_original.png'),
link: Link(
webUrl: Uri.parse('https://developers.kakao.com'),
mobileWebUrl: Uri.parse('https://developers.kakao.com'),
),
),
Content(
title: 'Emotional atmosphere',
description: 'Photo',
imageUrl: Uri.parse(
'https://mud-kage.kakao.com/dn/c7MBX4/btqgeRgWhBy/ZMLnndJFAqyUAnqu4sQHS0/kakaolink40_original.png'),
link: Link(
webUrl: Uri.parse('https://developers.kakao.com'),
mobileWebUrl: Uri.parse('https://developers.kakao.com'),
),
),
],
buttons: [
Button(
title: 'View on Web',
link: Link(
webUrl: Uri.parse('https://developers.kakao.com'),
mobileWebUrl: Uri.parse('https://developers.kakao.com'),
),
),
Button(
title: 'View on App',
link: Link(
androidExecutionParams: {'key1': 'value1', 'key2': 'value2'},
iosExecutionParams: {'key1': 'value1', 'key2': 'value2'},
),
),
],
);
* header_image_url, header_image_width, header_image_height: Deprecated, 헤더 영역 배경 이미지, 공지 참고
커머스 템플릿을 사용하려면 아래와 같이 객체를 구성해야 합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
object_type | String |
commerce 로 고정 |
O |
content | Content |
메시지의 콘텐츠 정보 | O |
commerce | Commerce |
상품 이름 및 가격 정보 | O |
button_title | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | Buttons[] |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 커머스 템플릿 메시지 구성을 위한 template_object 구성 예시
{
"object_type": "commerce",
"content": {
"title": "Ivory long dress (4 Color)",
"image_url": "https://mud-kage.kakao.com/dn/RY8ZN/btqgOGzITp3/uCM1x2xu7GNfr7NS9QvEs0/kakaolink40_original.png",
"image_width": 640,
"image_height": 640,
"link": {
"web_url": "https://style.kakao.com/main/women/contentId=100",
"mobile_web_url": "https://style.kakao.com/main/women/contentId=100",
"android_execution_params": "contentId=100",
"ios_execution_params": "contentId=100"
}
},
"commerce": {
"regular_price": 208800,
"discount_price": 146160,
"discount_rate": 30
},
"buttons": [
{
"title": "구매하기",
"link": {
"web_url": "https://style.kakao.com/main/women/contentId=100/buy",
"mobile_web_url": "https://style.kakao.com/main/women/contentId=100/buy",
"android_execution_params": "contentId=100&buy=true",
"ios_execution_params": "contentId=100&buy=true"
}
},
{
"title": "공유하기",
"link": {
"web_url": "https://style.kakao.com/main/women/contentId=100/share",
"mobile_web_url": "https://style.kakao.com/main/women/contentId=100/share",
"android_execution_params": "contentId=100&share=true",
"ios_execution_params": "contentId=100&share=true"
}
}
]
}
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
objectType | String |
commerce 로 고정 |
O |
content | ContentObject |
메시지의 콘텐츠 정보 | O |
commerce | CommerceObject |
상품 이름 및 가격 정보 | O |
buttonTitle | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | Array.<ButtonObject> |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 커머스 템플릿 메시지 구성을 위한 template_object 구성 예시
{
objectType: 'commerce',
content: {
title: '언제 어디든, 더 쉽고 편하게 당신의 일상을 더 즐겁게, 헤이 라이언의 이야기를 들려드릴게요.',
imageUrl:
'http://k.kakaocdn.net/dn/dScJiJ/btqB3cwK1Hi/pv5qHVwetz5RZfPZR3C5K1/kakaolink40_original.png',
link: {
mobileWebUrl: 'https://developers.kakao.com',
webUrl: 'https://developers.kakao.com',
},
},
commerce: {
productName: '카카오미니',
regularPrice: 100000,
discountRate: 10,
discountPrice: 90000,
},
buttons: [
{
title: '구매하기',
link: {
mobileWebUrl: 'https://developers.kakao.com',
webUrl: 'https://developers.kakao.com',
},
},
{
title: '공유하기',
link: {
mobileWebUrl: 'https://developers.kakao.com',
webUrl: 'https://developers.kakao.com',
},
},
],
}
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
content | Content |
메시지의 콘텐츠 정보 | O |
commerce | Commerce |
상품 이름 및 가격 정보 | O |
buttonTitle | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | List<Button> |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 커머스 템플릿 메시지 구성을 위한 CommerceTemplate 클래스 구성 예시
val defaultCommerce = CommerceTemplate(
content = Content(
title = "Ivory long dress (4 Color)",
imageUrl = "https://mud-kage.kakao.com/dn/RY8ZN/btqgOGzITp3/uCM1x2xu7GNfr7NS9QvEs0/kakaolink40_original.png",
link = Link(
webUrl = "https://developers.kakao.com",
mobileWebUrl = "https://developers.kakao.com"
)
),
commerce = Commerce(
regularPrice = 208800,
discountPrice = 146160,
discountRate = 30,
productName = "Ivory long dress"
),
buttons = listOf(
Button(
"구매하기",
Link(
webUrl = "https://developers.kakao.com",
mobileWebUrl = "https://developers.kakao.com"
)
),
Button(
"공유하기",
Link(
androidExecutionParams = mapOf("key1" to "value1", "key2" to "value2"),
iosExecutionParams = mapOf("key1" to "value1", "key2" to "value2")
)
)
)
)
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
content | Content |
메시지의 콘텐츠 정보 | O |
commerce | CommerceDetail |
상품 이름 및 가격 정보 | O |
buttonTitle | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | [Button] |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 커머스 템플릿 메시지 구성을 위한 CommerceTemplate 클래스 구성 예시
let title = "커머스 메시지"
let description = "커머스 메시지 예제"
let commerceTemplateJsonStringData =
"""
{
"object_type": "commerce",
"commerce": {
"product_name": "Ivory long dress",
"regular_price": 208800,
"discount_price": 146160,
"discount_rate": 30
},
"content": {
"title": "Ivory long dress (4 Color)",
"image_url": "https://mud-kage.kakao.com/dn/RY8ZN/btqgOGzITp3/uCM1x2xu7GNfr7NS9QvEs0/kakaolink40_original.png",
"link": {
"mobile_web_url": "https://developers.kakao.com",
"web_url": "https://developers.kakao.com"
},
},
"buttons": [
{
"title": "구매하기",
"link": {
"mobile_web_url": "https://developers.kakao.com",
"web_url": "https://developers.kakao.com"
}
},
{
"title": "공유하기",
"link": {
"android_execution_params": "key1=value1&key2=value2",
"ios_execution_params": "key1=value1&key2=value2"
}
}
]
}
""".data(using: .utf8)!
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
content | Content |
메시지의 콘텐츠 정보 | O |
commerce | Commerce |
상품 이름 및 가격 정보 | O |
buttonTitle | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | List<Button> |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 커머스 템플릿 메시지 구성을 위한 CommerceTemplate 클래스 구성 예시
final CommerceTemplate defaultCommerce = CommerceTemplate(
content: Content(
title: 'Ivory long dress (4 Color)',
imageUrl: Uri.parse(
'https://mud-kage.kakao.com/dn/RY8ZN/btqgOGzITp3/uCM1x2xu7GNfr7NS9QvEs0/kakaolink40_original.png'),
link: Link(
webUrl: Uri.parse('https://developers.kakao.com'),
mobileWebUrl: Uri.parse('https://developers.kakao.com'),
),
),
commerce: Commerce(
regularPrice: 208800,
discountPrice: 146160,
discountRate: 30,
productName: "Ivory long dress",
currencyUnit: "₩",
currencyUnitPosition: 1,
),
buttons: [
Button(
title: '구매하기',
link: Link(
webUrl: Uri.parse('https://developers.kakao.com'),
mobileWebUrl: Uri.parse('https://developers.kakao.com'),
),
),
Button(
title: '공유하기',
link: Link(
androidExecutionParams: {'key1': 'value1', 'key2': 'value2'},
iosExecutionParams: {'key1': 'value1', 'key2': 'value2'},
),
)
],
);
위치 템플릿을 사용하려면 아래와 같이 객체를 구성해야 합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
object_type | String |
location 로 고정 |
O |
address | String |
공유할 위치의 주소 (예: 경기 성남시 분당구 판교역로 235) |
O |
address_title | String |
카카오톡 내의 지도 뷰에서 사용되는 타이틀 (예: 카카오판교오피스) |
X |
content | Content |
위치에 대해 설명하는 콘텐츠 정보 | O |
social | Social |
부가적인 소셜 정보 | X |
button_title | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | Buttons[] |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 위치 템플릿 메시지 구성을 위한 template_object 구성 예시
{
"object_type": "location",
"content": {
"title": "카카오 판교오피스",
"description": "카카오 판교오피스 위치입니다.",
"image_url": "https://mud-kage.kakao.com/dn/drTdbB/bWYf06POFPf/owUHIt7K7NoGD0hrzFLeW0/kakaolink40_original.png",
"image_width": 800,
"image_height": 800,
"link": {
"web_url": "https://developers.kakao.com",
"mobile_web_url": "https://developers.kakao.com/mobile",
"android_execution_params": "platform=android",
"ios_execution_params": "platform=ios"
}
},
"buttons": [
{
"title": "웹으로 보기",
"link": {
"web_url": "https://developers.kakao.com",
"mobile_web_url": "https://developers.kakao.com/mobile"
}
}
],
"address": "경기 성남시 분당구 판교역로 235 에이치스퀘어 N동 7층",
"address_title": "카카오 판교오피스"
}
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
objectType | String |
location 로 고정 |
O |
address | String |
공유할 위치의 주소 (예: 경기 성남시 분당구 판교역로 235) |
O |
addressTitle | String |
카카오톡 내의 지도 뷰에서 사용되는 타이틀 (예: 카카오판교오피스) |
X |
content | ContentObject |
위치에 대해 설명하는 콘텐츠 정보 | O |
social | SocialObject |
부가적인 소셜 정보 | X |
buttonTitle | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | Array.<ButtonObject> |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 위치 템플릿 메시지 구성을 위한 template_object 구성 예시
{
objectType: 'location',
address: '경기 성남시 분당구 판교역로 166 3층',
addressTitle: '카카오 판교오피스 카페톡',
content: {
title: '신메뉴 출시♥︎ 체리블라썸라떼',
description: '이번 주는 체리블라썸라떼 1+1',
imageUrl:
'http://k.kakaocdn.net/dn/bSbH9w/btqgegaEDfW/vD9KKV0hEintg6bZT4v4WK/kakaolink40_original.png',
link: {
mobileWebUrl: 'https://developers.kakao.com',
webUrl: 'https://developers.kakao.com',
},
},
social: {
likeCount: 286,
commentCount: 45,
sharedCount: 845,
},
buttons: [
{
title: '웹으로 보기',
link: {
mobileWebUrl: 'https://developers.kakao.com',
webUrl: 'https://developers.kakao.com',
},
},
],
}
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
address | String |
공유할 위치의 주소 (예: 경기 성남시 분당구 판교역로 235) |
O |
addressTitle | String |
카카오톡 내의 지도 뷰에서 사용되는 타이틀 (예: 카카오판교오피스) |
X |
content | Content |
위치에 대해 설명하는 콘텐츠 정보 | O |
social | Social |
부가적인 소셜 정보 | X |
buttonTitle | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | List<Button> |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 위치 템플릿 메시지 구성을 위한 LocationTemplate 클래스 구성 예시
val defaultLocation = LocationTemplate(
address = "경기 성남시 분당구 판교역로 235 에이치스퀘어 N동 8층",
addressTitle = "카카오 판교오피스 카페톡",
content = Content(
title = "신메뉴 출시❤️ 체리블라썸라떼",
description = "이번 주는 체리블라썸라떼 1+1",
imageUrl = "https://mud-kage.kakao.com/dn/bSbH9w/btqgegaEDfW/vD9KKV0hEintg6bZT4v4WK/kakaolink40_original.png",
link = Link(
webUrl = "https://developers.com",
mobileWebUrl = "https://developers.kakao.com"
)
),
social = Social(
likeCount = 286,
commentCount = 45,
sharedCount = 845
)
)
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
address | String |
공유할 위치의 주소 (예: 경기 성남시 분당구 판교역로 235) |
O |
addressTitle | String |
카카오톡 내의 지도 뷰에서 사용되는 타이틀 (예: 카카오판교오피스) |
X |
content | Content |
위치에 대해 설명하는 콘텐츠 정보 | O |
social | Social |
부가적인 소셜 정보 | X |
buttonTitle | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | [Button] |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 위치 템플릿 메시지 구성을 위한 LocationTemplate 클래스 구성 예시
let title = "위치 메시지"
let description = "위치 메시지 예제"
let locationTemplateJsonStringData =
"""
{
"object_type": "location",
"address_title": "카카오 판교오피스 카페톡",
"address": "경기 성남시 분당구 판교역로 235 에이치스퀘어 N동 8층",
"content": {
"description": "이번 주는 체리블라썸라떼 1+1",
"image_url": "https://mud-kage.kakao.com/dn/bSbH9w/btqgegaEDfW/vD9KKV0hEintg6bZT4v4WK/kakaolink40_original.png",
"link": {
"mobile_web_url": "https://developers.kakao.com",
"web_url": "https://developers.com"
},
"title": "신메뉴 출시❤️ 체리블라썸라떼"
},
"social": {
"comment_count": 45,
"like_count": 286,
"shared_count": 845
}
}
""".data(using: .utf8)!
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
address | String |
공유할 위치의 주소 (예: 경기 성남시 분당구 판교역로 235) |
O |
addressTitle | String |
카카오톡 내의 지도 뷰에서 사용되는 타이틀 (예: 카카오판교오피스) |
X |
content | Content |
위치에 대해 설명하는 콘텐츠 정보 | O |
social | Social |
부가적인 소셜 정보 | X |
buttonTitle | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | List<Button> |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 위치 템플릿 메시지 구성을 위한 LocationTemplate 클래스 구성 예시
final LocationTemplate defaultLocation = LocationTemplate(
address: '경기 성남시 분당구 판교역로 235 에이치스퀘어 N동 8층',
content: Content(
title: '신메뉴 출시❤️ 체리블라썸라떼',
description: '이번 주는 체리블라썸라떼 1+1',
imageUrl: Uri.parse(
'https://mud-kage.kakao.com/dn/bSbH9w/btqgegaEDfW/vD9KKV0hEintg6bZT4v4WK/kakaolink40_original.png'),
link: Link(
webUrl: Uri.parse('https://developers.kakao.com'),
mobileWebUrl: Uri.parse('https://developers.kakao.com'),
),
),
social: Social(likeCount: 286, commentCount: 45, sharedCount: 845),
);
텍스트 템플릿을 사용하려면 아래와 같이 객체를 구성해야 합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
object_type | String |
text 로 고정 |
O |
text | String |
텍스트 정보, 최대 200자 | O |
link | Link |
콘텐츠 클릭 시 이동할 링크 정보 | O |
button_title | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | Buttons[] |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 텍스트 템플릿 메시지 구성을 위한 template_object 구성 예시
{
"object_type": "text",
"text": "텍스트 영역입니다. 최대 200자 표시 가능합니다.",
"link": {
"web_url": "https://developers.kakao.com",
"mobile_web_url": "https://developers.kakao.com"
},
"button_title": "바로 확인"
}
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
objectType | String |
text 로 고정 |
O |
text | String |
텍스트 정보, 최대 200자 | O |
link | LinkObject |
콘텐츠 클릭 시 이동할 링크 정보 | O |
buttonTitle | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | Array.<ButtonObject> |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 텍스트 템플릿 메시지 구성을 위한 template_object 구성 예시
{
objectType: 'text',
text:
'기본 템플릿으로 제공하는 텍스트 템플릿은 텍스트를 최대 200자까지 표시할 수 있습니다. 텍스트 템플릿은 텍스트 영역과 하나의 기본 버튼을 가집니다. 임의의 버튼을 설정할 수도 있습니다. 여러 장의 이미지, 프로필 정보 등 보다 확장된 형태의 카카오톡 공유는 다른 템플릿을 이용해 보낼 수 있습니다.',
link: {
mobileWebUrl: 'https://developers.kakao.com',
webUrl: 'https://developers.kakao.com',
},
}
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
text | String |
텍스트 정보, 최대 200자 | O |
link | Link |
콘텐츠 클릭 시 이동할 링크 정보 | O |
buttonTitle | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | List<Button> |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 텍스트 템플릿 메시지 구성을 위한 TextTemplate 클래스 구성 예시
val defaultText = TextTemplate(
text = """
카카오톡 공유는 카카오톡을 실행하여
사용자가 선택한 채팅방으로 메시지를 전송합니다.
""".trimIndent(),
link = Link(
webUrl = "https://developers.kakao.com",
mobileWebUrl = "https://developers.kakao.com"
)
)
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
text | String |
텍스트 정보, 최대 200자 | O |
link | Link |
콘텐츠 클릭 시 이동할 링크 정보 | O |
buttonTitle | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | [Button] |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 텍스트 템플릿 메시지 구성을 위한 TextTemplate 클래스 구성 예시
let text = "카카오톡 공유는 카카오 플랫폼 서비스의 대표 기능으로써 사용자의 모바일 기기에 설치된 카카오 플랫폼과 연동하여 다양한 기능을 실행할 수 있습니다.\\n\\n현재 이용할 수 있는 카카오톡 공유는 아래와 같습니다.\\n카카오톡링크\\n카카오톡을 실행하여 사용자가 선택한 채팅방으로 메시지를 전송합니다."
let textTemplateJsonStringData =
"""
{
"object_type": "text",
"text": "\(text)",
"link": {
"web_url": "http://dev.kakao.com",
"mobile_web_url": "http://dev.kakao.com"
},
"button_title": "바로 확인"
}
""".data(using: .utf8)!
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
text | String |
텍스트 정보, 최대 200자 | O |
link | Link |
콘텐츠 클릭 시 이동할 링크 정보 | O |
buttonTitle | String |
기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 | X |
buttons | List<Button> |
버튼 목록, 최대 2개 버튼 타이틀과 링크를 변경하고 싶을 때, 버튼 두 개를 넣고 싶을 때 사용 |
X |
// 텍스트 템플릿 메시지 구성을 위한 TextTemplate 클래스 구성 예시
final TextTemplate defaultText = TextTemplate(
text:
'카카오톡 공유는 카카오 플랫폼 서비스의 대표 기능으로써 사용자의 모바일 기기에 설치된 카카오 플랫폼과 연동하여 다양한 기능을 실행할 수 있습니다.\n현재 이용할 수 있는 카카오톡 공유는 아래와 같습니다.\n카카오톡링크\n카카오톡을 실행하여 사용자가 선택한 채팅방으로 메시지를 전송합니다.',
link: Link(
webUrl: Uri.parse('https: //developers.kakao.com'),
mobileWebUrl: Uri.parse('https: //developers.kakao.com'),
),
);
캘린더 템플릿을 사용하려면 아래와 같이 객체를 구성해야 합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
object_type | String |
calendar 로 고정 |
O |
id_type | String |
id 의 타입, event (공개 일정) 또는 calendar (구독 캘린더) 중 하나중요: id_type 에 따라 🅒의 기본 버튼이 아래의 지정된 문구로 출력됨공개 일정 ID: [일정 등록 하기] 구독 캘린더 ID: [캘린더 구독하기] |
O |
id | String |
공개 일정 또는 구독 캘린더 ID | O |
content | Content |
일정 제목과 설명 | O |
buttons | Buttons[] |
사용자 정의 버튼 정보, 최대 1개의 버튼 정보만 사용됨 캘린더 메시지는 기본적으로 공개 일정 추가 또는 구독 캘린더 구독을 위한 기본 버튼을 제공하고, 1개의 사용자 정의 버튼을 선택적으로 추가 가능 |
X |
// 캘린더 템플릿 메시지 구성을 위한 template_object 구성 예시
{
"object_type": "calendar",
"content": {
"title": "일정 제목",
"description": "일정 설명",
"image_url": "https://developers.kakao.com/static/images/pc/txt_visual1.png",
"link": {
"web_url":"https://kakao.com"
}
},
"buttons": [
{
"title": "일정 정보 보기",
"link": {
"web_url": "https://developers.kakao.com",
"mobile_web_url": "https://developers.kakao.com/mobile"
}
}
],
"id_type": "event",
"id": "6351f57c7ec8e318d0b809a0"
}
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
objectType | String |
calendar 로 고정 |
O |
idType | String |
id 의 타입, event (공개 일정) 또는 calendar (구독 캘린더) 중 하나중요: idType 에 따라 🅒의 기본 버튼이 아래의 지정된 문구로 출력됨공개 일정 ID: [일정 등록 하기] 구독 캘린더 ID: [캘린더 구독하기] |
O |
id | String |
공개 일정 또는 구독 캘린더 ID | O |
content | ContentObject |
일정 제목과 설명 | O |
buttons | Array.<ButtonObject> |
사용자 정의 버튼 정보, 최대 1개의 버튼 정보만 사용됨 캘린더 메시지는 기본적으로 공개 일정 추가 또는 구독 캘린더 구독을 위한 기본 버튼을 제공하고, 1개의 사용자 정의 버튼을 선택적으로 추가 가능 |
X |
// 캘린더 템플릿 메시지 구성을 위한 template_object 구성 예시
{
objectType: 'calendar',
idType: 'event',
id: '${YOUR_EVENT_ID}',
content: {
title: '1월 신작 평론 모임',
description: '따끈한 신작 감상평을 나누는 월간 모임에 초대합니다.',
imageUrl:
'http://k.kakaocdn.net/dn/dFUqwp/bl3SUTqb2VV/VFSqyPpKUzZVVMcmotN9A0/kakaolink40_original.png',
link: {
webUrl: 'https://developers.kakao.com',
mobileWebUrl: 'https://developers.kakao.com',
},
},
buttons: [
{
title: '모임 주제 보기',
link: {
webUrl: 'https://developers.kakao.com',
mobileWebUrl: 'https://developers.kakao.com',
},
},
],
}
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
idType | String |
id 의 타입, event (공개 일정) 또는 calendar (구독 캘린더) 중 하나중요: idType 에 따라 🅒의 기본 버튼이 아래의 지정된 문구로 출력됨공개 일정 ID: [일정 등록 하기] 구독 캘린더 ID: [캘린더 구독하기] |
O |
id | String |
공개 일정 또는 구독 캘린더 ID | O |
content | Content |
일정 제목과 설명 | O |
buttons | List<Button> |
사용자 정의 버튼 정보, 최대 1개의 버튼 정보만 사용됨 캘린더 메시지는 기본적으로 공개 일정 추가 또는 구독 캘린더 구독을 위한 기본 버튼을 제공하고, 1개의 사용자 정의 버튼을 선택적으로 추가 가능 |
X |
// 캘린더 템플릿 메시지 구성을 위한 CalendarTemplate 클래스 구성 예시
val defaultCalendar = CalendarTemplate(
idType = IdType.EVENT,
id = "${YOUR_EVENT_ID}",
content = Content(
title = "1월 신작 평론 모임",
description = "따끈한 신작 감상평을 나누는 월간 모임에 초대합니다.",
imageUrl = "http://k.kakaocdn.net/dn/dFUqwp/bl3SUTqb2VV/VFSqyPpKUzZVVMcmotN9A0/kakaolink40_original.png",
link = Link(
webUrl = "https://developers.kakao.com",
mobileWebUrl = "https://developers.kakao.com",
)
),
buttons = listOf(
Button(
title = "모임 주제 보기",
link = Link(
webUrl = "https://developers.kakao.com",
mobileWebUrl = "https://developers.kakao.com",
),
)
)
)
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
idType | IdType |
id 의 타입, event (공개 일정) 또는 calendar (구독 캘린더) 중 하나중요: idType 에 따라 🅒의 기본 버튼이 아래의 지정된 문구로 출력됨공개 일정 ID: [일정 등록 하기] 구독 캘린더 ID: [캘린더 구독하기] |
O |
id | String |
공개 일정 또는 구독 캘린더 ID | O |
content | Content |
일정 제목과 설명 | O |
buttons | [Button] |
사용자 정의 버튼 정보, 최대 1개의 버튼 정보만 사용됨 캘린더 메시지는 기본적으로 공개 일정 추가 또는 구독 캘린더 구독을 위한 기본 버튼을 제공하고, 1개의 사용자 정의 버튼을 선택적으로 추가 가능 |
X |
// 캘린더 템플릿 메시지 구성을 위한 CalendarTemplate 클래스 구성 예시
let calendarTemplateJsonStringData =
"""
{
"object_type": "calendar",
"id_type": "\(CalendarTemplate.IdType.Event.rawValue)",
"id": "${YOUR_EVENT_ID}",
"content": {
"link": {
"web_url": "https://devtalk.kakao.com",
"mobile_web_url": "https://developers.kakao.com"
},
"title": "1월 신작 평론 모임",
"image_url": "http://k.kakaocdn.net/dn/dFUqwp/bl3SUTqb2VV/VFSqyPpKUzZVVMcmotN9A0/kakaolink40_original.png"
},
"buttons": [
{
"title": "모임 주제 보기",
"link": {
"mobile_web_url": "https://developers.kakao.com",
"web_url": "https://developers.kakao.com"
}
}
]
}
""".data(using: .utf8)!
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
idType | String |
id 의 타입, event (공개 일정) 또는 calendar (구독 캘린더) 중 하나중요: idType 에 따라 🅒의 기본 버튼이 아래의 지정된 문구로 출력됨공개 일정 ID: [일정 등록 하기] 구독 캘린더 ID: [캘린더 구독하기] |
O |
id | String |
공개 일정 또는 구독 캘린더 ID | O |
content | Content |
일정 제목과 설명 | O |
buttons | List<Button> |
사용자 정의 버튼 정보, 최대 1개의 버튼 정보만 사용됨 캘린더 메시지는 기본적으로 공개 일정 추가 또는 구독 캘린더 구독을 위한 기본 버튼을 제공하고, 1개의 사용자 정의 버튼을 선택적으로 추가 가능 |
X |
// 캘린더 템플릿 메시지 구성을 위한 CalendarTemplate 클래스 구성 예시
final CalendarTemplate defaultCalendar = CalendarTemplate(
idType: IdType.event,
id: '${YOUR_EVENT_ID}',
content: Content(
title: '1월 신작 평론 모임',
description: '따끈한 신작 감상평을 나누는 월간 모임에 초대합니다.',
imageUrl: Uri.parse(
'http://k.kakaocdn.net/dn/dFUqwp/bl3SUTqb2VV/VFSqyPpKUzZVVMcmotN9A0/kakaolink40_original.png'),
link: Link(
webUrl: Uri.parse('https://developers.kakao.com'),
mobileWebUrl: Uri.parse('https://developers.kakao.com'),
),
),
buttons: [
Button(
title: '모임 주제 보기',
link: Link(
webUrl: Uri.parse('https://developers.kakao.com'),
mobileWebUrl: Uri.parse('https://developers.kakao.com'),
),
)
],
);
메시지 템플릿을 구성하는 공통 요소를 설명합니다.
메시지 제목, 본문, 이미지 정보와 같은 메시지의 기본 콘텐츠 정보를 담는 객체입니다.
이미지의 경우, URL로 전달해야 하며, RFC2396, RFC1034, RFC1123를 준수해야 합니다. 규격에 맞지 않는 이미지 URL은 이미지가 보이지 않습니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
title | String |
콘텐츠의 타이틀 | O* |
image_url | String |
콘텐츠의 이미지 URL | O* |
image_width | Int |
콘텐츠의 이미지 너비, 픽셀 단위 | X |
image_height | Int |
콘텐츠의 이미지 높이, 픽셀 단위 | X |
description | String |
콘텐츠의 상세 설명, title과 합쳐 최대 4줄 표시 | O* |
link | Link |
콘텐츠 클릭 시 이동할 링크 정보 | O |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
title | String |
콘텐츠의 타이틀 | O* |
imageUrl | String |
콘텐츠의 이미지 URL | O* |
imageWidth | Number |
콘텐츠의 이미지 너비, 픽셀 단위 | X |
imageHeight | Number |
콘텐츠의 이미지 높이, 픽셀 단위 | X |
description | String |
콘텐츠의 상세 설명, title과 합쳐 최대 4줄 표시 | O* |
link | LinkObject |
콘텐츠 클릭 시 이동할 링크 정보 | O |
Android SDK를 사용하는 경우 Content
클래스를 사용합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
title | String |
콘텐츠의 타이틀 | O* |
imageUrl | String |
콘텐츠의 이미지 URL | O* |
imageWidth | Int |
콘텐츠의 이미지 너비, 픽셀 단위 | X |
imageHeight | Int |
콘텐츠의 이미지 높이, 픽셀 단위 | X |
description | String |
콘텐츠의 상세 설명, title과 합쳐 최대 4줄 표시 | O* |
link | Link |
콘텐츠 클릭 시 이동할 링크 정보 | O |
iOS SDK를 사용하는 경우 Content
클래스를 사용합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
title | String |
콘텐츠의 타이틀 | O* |
imageURL | URL |
콘텐츠의 이미지 URL | O* |
imageWidth | Int |
콘텐츠의 이미지 너비, 픽셀 단위 | X |
imageHeight | Int |
콘텐츠의 이미지 높이, 픽셀 단위 | X |
description | String |
콘텐츠의 상세 설명, title과 합쳐 최대 4줄 표시 | O* |
link | Link |
콘텐츠 클릭 시 이동할 링크 정보 | O |
Flutter SDK를 사용하는 경우 Content
클래스를 사용합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
title | String |
콘텐츠의 타이틀 | O* |
imageUrl | String |
콘텐츠의 이미지 URL | O* |
imageWidth | Int |
콘텐츠의 이미지 너비, 픽셀 단위 | X |
imageHeight | Int |
콘텐츠의 이미지 높이, 픽셀 단위 | X |
description | String |
콘텐츠의 상세 설명, title과 합쳐 최대 4줄 표시 | O* |
link | Link |
콘텐츠 클릭 시 이동할 링크 정보 | O |
* title, image_url, description 중 하나 필수
메시지에 포함되는 버튼의 정보를 담는 객체입니다. 버튼의 텍스트와 클릭 시 동작을 정의합니다.
메시지 구성 시 buttonTitle
, buttons
모두 주어졌다면 buttons
를 우선 사용합니다. 둘 다 주어지지 않았을 때에는 기본 타이틀과 content
에 있는 link
정보로 버튼 하나가 구성됩니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
title | String |
버튼의 타이틀 | O |
link | Link |
버튼 클릭 시 이동할 링크 정보(하나는 필수로 존재해야 함) | O |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
title | String |
버튼의 타이틀 | O |
link | LinkObject |
버튼 클릭 시 이동할 링크 정보(하나는 필수로 존재해야 함) | O |
Android SDK를 사용하는 경우 Button
클래스를 사용합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
title | String |
버튼의 타이틀 | O |
link | Link |
버튼 클릭 시 이동할 링크 정보(하나는 필수로 존재해야 함) | O |
iOS SDK를 사용하는 경우 Button
클래스를 사용합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
title | String |
버튼의 타이틀 | O |
link | Link |
버튼 클릭 시 이동할 링크 정보(하나는 필수로 존재해야 함) | O |
Flutter SDK를 사용하는 경우 Button
클래스를 사용합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
title | String |
버튼의 타이틀 | O |
link | Link |
버튼 클릭 시 이동할 링크 정보(하나는 필수로 존재해야 함) | O |
메시지에서 콘텐츠 영역이나 버튼 클릭 시에 이동되는 링크 정보를 담은 객체입니다.
플랫폼별로 각각 링크를 설정할 수 있으며, 사용자의 카카오톡 실행 환경에 따라 적합한 링크가 동작합니다. Web 링크는 PC/Mac, Android, iOS 모두 지원됩니다. Android와 iOS 링크는 해당 플랫폼에서만 버튼에 적용됩니다. 자세한 사항은 링크 동작 방식을 참고합니다.
메시지에 링크를 적용하려면 link
의 필드 중 최소 하나 이상 설정 필수이며, 링크 설정이 없거나 사용자의 카카오톡 실행 환경에서 사용할 수 있는 링크 설정이 없다면 메시지 콘텐츠 영역에 링크가 적용되지 않거나 버튼이 나타나지 않습니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
web_url | String |
PC버전 카카오톡에서 사용하는 웹 링크 URL 도메인 부분은 [내 애플리케이션] > [플랫폼] > [Web]에서 등록한 사이트 도메인과 일치해야 함 |
O* |
mobile_web_url | String |
모바일 카카오톡에서 사용하는 웹 링크 URL 도메인 부분은 [내 애플리케이션] > [플랫폼] > [Web]에서 등록한 사이트 도메인과 일치해야 함 |
O* |
android_execution_params | String |
안드로이드 카카오톡에서 사용하는 앱 링크 URL에 사용될 파라미터 해당 값이 없을 경우 mobile_web_url 이용 |
O* |
ios_execution_params | String |
iOS 카카오톡에서 사용하는 앱 링크 URL에 사용될 파라미터 해당 값이 없을 경우 mobile_web_url 이용 |
O* |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
webUrl | String |
PC버전 카카오톡에서 사용하는 웹 링크 URL 도메인 부분은 [내 애플리케이션] > [플랫폼] > [Web]에서 등록한 사이트 도메인과 일치해야 함 |
O* |
mobileWebUrl | String |
모바일 카카오톡에서 사용하는 웹 링크 URL 도메인 부분은 [내 애플리케이션] > [플랫폼] > [Web]에서 등록한 사이트 도메인과 일치해야 함 |
O* |
androidExecutionParams | String |
안드로이드 카카오톡에서 사용하는 앱 링크 URL에 사용될 파라미터 해당 값이 없을 경우 mobile_web_url 이용 |
O* |
iosExecutionParams | String |
iOS 카카오톡에서 사용하는 앱 링크 URL에 사용될 파라미터 해당 값이 없을 경우 mobile_web_url 이용 |
O* |
Android SDK를 사용하는 경우 Link
클래스를 사용합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
webUrl | String |
PC버전 카카오톡에서 사용하는 웹 링크 URL 도메인 부분은 [내 애플리케이션] > [플랫폼] > [Web]에서 등록한 사이트 도메인과 일치해야 함 |
O* |
mobileWebUrl | String |
모바일 카카오톡에서 사용하는 웹 링크 URL 도메인 부분은 [내 애플리케이션] > [플랫폼] > [Web]에서 등록한 사이트 도메인과 일치해야 함 |
O* |
androidExecutionParams | Map<String,String> |
안드로이드 카카오톡에서 사용하는 앱 링크 URL에 사용될 파라미터 해당 값이 없을 경우 mobile_web_url 이용 |
O* |
iosExecutionParams | Map<String,String> |
iOS 카카오톡에서 사용하는 앱 링크 URL에 사용될 파라미터 해당 값이 없을 경우 mobile_web_url 이용 |
O* |
iOS SDK를 사용하는 경우 Link
클래스를 사용합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
webURL | URL |
PC버전 카카오톡에서 사용하는 웹 링크 URL 도메인 부분은 [내 애플리케이션] > [플랫폼] > [Web]에서 등록한 사이트 도메인과 일치해야 함 |
O* |
mobileWebURL | URL |
모바일 카카오톡에서 사용하는 웹 링크 URL 도메인 부분은 [내 애플리케이션] > [플랫폼] > [Web]에서 등록한 사이트 도메인과 일치해야 함 |
O* |
androidExecutionParams | String |
안드로이드 카카오톡에서 사용하는 앱 링크 URL에 사용될 파라미터 해당 값이 없을 경우 mobile_web_url 이용 |
O* |
iosExecutionParams | String |
iOS 카카오톡에서 사용하는 앱 링크 URL에 사용될 파라미터 해당 값이 없을 경우 mobile_web_url 이용 |
O* |
Flutter SDK를 사용하는 경우 Link
클래스를 사용합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
webUrl | Uri |
PC버전 카카오톡에서 사용하는 웹 링크 URL 도메인 부분은 [내 애플리케이션] > [플랫폼] > [Web]에서 등록한 사이트 도메인과 일치해야 함 |
O* |
mobileWebUrl | Uri |
모바일 카카오톡에서 사용하는 웹 링크 URL 도메인 부분은 [내 애플리케이션] > [플랫폼] > [Web]에서 등록한 사이트 도메인과 일치해야 함 |
O* |
androidExecutionParams | Map<String,String> |
안드로이드 카카오톡에서 사용하는 앱 링크 URL에 사용될 파라미터 해당 값이 없을 경우 mobile_web_url 이용 |
O* |
iosExecutionParams | Map<String,String> |
iOS 카카오톡에서 사용하는 앱 링크 URL에 사용될 파라미터 해당 값이 없을 경우 mobile_web_url 이용 |
O* |
* web_url, mobile_web_url, android_execution_params, ios_execution_params 중 하나 필수
콘텐츠의 좋아요, 댓글, 공유, 조회, 구독 수 등 소셜 지표를 표시하는 영역을 표시하기 위한 객체입니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
like_count | Int |
콘텐츠의 좋아요 수 | X |
comment_count | Int |
콘텐츠의 댓글 수 | X |
shared_count | Int |
콘텐츠의 공유 수 | X |
view_count | Int |
콘텐츠의 조회 수 | X |
subscriber_count | Int |
콘텐츠의 구독 수 | X |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
likeCount | Number |
콘텐츠의 좋아요 수 | X |
commentCount | Number |
콘텐츠의 댓글 수 | X |
sharedCount | Number |
콘텐츠의 공유 수 | X |
viewCount | Number |
콘텐츠의 조회 수 | X |
subscriberCount | Number |
콘텐츠의 구독 수 | X |
Android SDK를 사용하는 경우 Social
클래스를 사용합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
likeCount | Int |
콘텐츠의 좋아요 수 | X |
commentCount | Int |
콘텐츠의 댓글 수 | X |
sharedCount | Int |
콘텐츠의 공유 수 | X |
viewCount | Int |
콘텐츠의 조회 수 | X |
subscriberCount | Int |
콘텐츠의 구독 수 | X |
iSO SDK를 사용하는 경우 Social
클래스를 사용합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
likeCount | Int |
콘텐츠의 좋아요 수 | X |
commentCount | Int |
콘텐츠의 댓글 수 | X |
sharedCount | Int |
콘텐츠의 공유 수 | X |
viewCount | Int |
콘텐츠의 조회 수 | X |
subscriberCount | Int |
콘텐츠의 구독 수 | X |
Flutter SDK를 사용하는 경우 Social
클래스를 사용합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
likeCount | Int |
콘텐츠의 좋아요 수 | X |
commentCount | Int |
콘텐츠의 댓글 수 | X |
sharedCount | Int |
콘텐츠의 공유 수 | X |
viewCount | Int |
콘텐츠의 조회 수 | X |
subscriberCount | Int |
콘텐츠의 구독 수 | X |
피드 B형 템플릿에서 사용할 수 있는 텍스트 아이템 정보입니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
profile_text | String |
헤더 또는 프로필 영역에 출력될 텍스트profile_image_url 값이 없을 경우, 볼드(Bold)체로 된 제목만 담은 헤더 형태로 출력됨최대 16자까지 출력 |
X |
profile_image_url | String |
프로필 영역에 출력될 이미지 작은 원형의 프로필 사진 형태로 출력됨 |
X |
title_image_text | String |
이미지 아이템의 제목 최대 2줄, 최대 24자까지 출력 |
X |
title_image_url | String |
이미지 아이템의 이미지 iOS 108*108 , Android 98*98 크기1:1 비율이 아닌 이미지는 센터 크롭(Center crop) 방식으로 재조정됨 |
X |
title_image_category | String |
이미지 아이템의 제목 아래에 회색 글씨로 출력되는 카테고리 정보 최대 한 줄, 최대 14자까지 출력 |
X |
items | ItemInfo[] |
각 텍스트 아이템 정보 아이템 이름과 가격에 해당하는 item , item_op 를 포함한 JSON 배열, 최대 5개의 아이템 지원(예: [{"item": "item1 name", "item_op": "item1_description"}, {"item": "item2 name", "item_op": "item2_description"}] ) |
X |
sum | String |
주문금액, 결제금액 등 아이템 영역의 요약 정보 제목 텍스트 아이템 영역 아래에 최대 6자까지 출력 중요: 🅖 영역에 하나 이상의 아이템이 있고, sum 과 sum_op 값을 모두 전달해야 🅗 영역이 출력됨참고: 🅗 영역 사용 시 🅖, 🅗 영역의 item_op , sum_op 는 오른쪽 정렬되고, 미사용 시에는 왼쪽 정렬됨 |
X |
sum_op | String |
아이템 영역의 가격 합산 정보 텍스트 아이템 영역 아래에 볼드체로 최대 11자까지 출력 중요: 🅖 영역에 하나 이상의 아이템이 있고, sum 과 sum_op 값을 모두 전달해야 🅗 영역이 출력됨참고: 🅗 영역 사용 시 🅖, 🅗 영역의 item_op , sum_op 는 오른쪽 정렬되고, 미사용 시에는 왼쪽 정렬됨 |
X |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
profileText | String |
헤더 또는 프로필 영역에 출력될 텍스트profileImageUrl 값이 없을 경우, 볼드(Bold)체로 된 제목만 담은 헤더 형태로 출력됨최대 16자까지 출력 |
X |
profileImageUrl | String |
프로필 영역에 출력될 이미지 작은 원형의 프로필 사진 형태로 출력됨 |
X |
titleImageText | String |
이미지 아이템의 제목 최대 2줄, 최대 24자까지 출력 |
X |
titleImageUrl | String |
이미지 아이템의 이미지 iOS 108*108 , Android 98*98 크기1:1 비율이 아닌 이미지는 센터 크롭(Center crop) 방식으로 재조정됨 |
X |
titleImageCategory | String |
이미지 아이템의 제목 아래에 회색 글씨로 출력되는 카테고리 정보 최대 한 줄, 최대 14자까지 출력 |
X |
items | Array.<ItemObject> |
각 텍스트 아이템 정보 아이템 이름과 가격에 해당하는 item , itemOp 를 포함한 JSON 배열, 최대 5개의 아이템 지원(예: [{"item": "item1 name", "itemOp": "item1_description"}, {"item": "item2 name", "itemOp": "item2_description"}] ) |
X |
sum | String |
주문금액, 결제금액 등 아이템 영역의 요약 정보 제목 텍스트 아이템 영역 아래에 최대 6자까지 출력 중요: 🅖 영역에 하나 이상의 아이템이 있고, sum 과 sumOp 값을 모두 전달해야 🅗 영역이 출력됨참고: 🅗 영역 사용 시 🅖, 🅗 영역의 itemOp , sumOp 는 오른쪽 정렬되고, 미사용 시에는 왼쪽 정렬됨 |
X |
sumOp | String |
아이템 영역의 가격 합산 정보 텍스트 아이템 영역 아래에 볼드체로 최대 11자까지 출력 중요: 🅖 영역에 하나 이상의 아이템이 있고, sum 과 sumOp 값을 모두 전달해야 🅗 영역이 출력됨참고: 🅗 영역 사용 시 🅖, 🅗 영역의 itemOp , sumOp 는 오른쪽 정렬되고, 미사용 시에는 왼쪽 정렬됨 |
X |
Android SDK를 사용하는 경우 ItemContent
클래스를 사용합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
profileText | String |
헤더 또는 프로필 영역에 출력될 텍스트profileImageUrl 값이 없을 경우, 볼드(Bold)체로 된 제목만 담은 헤더 형태로 출력됨최대 16자까지 출력 |
X |
profileImageUrl | String |
프로필 영역에 출력될 이미지 작은 원형의 프로필 사진 형태로 출력됨 |
X |
titleImageText | String |
이미지 아이템의 제목 최대 2줄, 최대 24자까지 출력 |
X |
titleImageUrl | String |
이미지 아이템의 이미지 iOS 108*108 , Android 98*98 크기1:1 비율이 아닌 이미지는 센터 크롭(Center crop) 방식으로 재조정됨 |
X |
titleImageCategory | String |
이미지 아이템의 제목 아래에 회색 글씨로 출력되는 카테고리 정보 최대 한 줄, 최대 14자까지 출력 |
X |
items | List<ItemInfo> |
각 텍스트 아이템 정보 아이템 이름과 가격에 해당하는 item , itemOp 를 포함한 리스트, 최대 5개의 아이템 지원 |
X |
sum | String |
주문금액, 결제금액 등 아이템 영역의 요약 정보 제목 텍스트 아이템 영역 아래에 최대 6자까지 출력 중요: 🅖 영역에 하나 이상의 아이템이 있고, sum 과 sumOp 값을 모두 전달해야 🅗 영역이 출력됨참고: 🅗 영역 사용 시 🅖, 🅗 영역의 itemOp , sumOp 는 오른쪽 정렬되고, 미사용 시에는 왼쪽 정렬됨 |
X |
sumOp | String |
아이템 영역의 가격 합산 정보 텍스트 아이템 영역 아래에 볼드체로 최대 11자까지 출력 중요: 🅖 영역에 하나 이상의 아이템이 있고, sum 과 sumOp 값을 모두 전달해야 🅗 영역이 출력됨참고: 🅗 영역 사용 시 🅖, 🅗 영역의 itemOp , sumOp 는 오른쪽 정렬되고, 미사용 시에는 왼쪽 정렬됨 |
X |
iOS SDK를 사용하는 경우 ItemContent
클래스를 사용합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
profileText | String |
헤더 또는 프로필 영역에 출력될 텍스트profileImageUrl 값이 없을 경우, 볼드(Bold)체로 된 제목만 담은 헤더 형태로 출력됨최대 16자까지 출력 |
X |
profileImageUrl | String |
프로필 영역에 출력될 이미지 작은 원형의 프로필 사진 형태로 출력됨 |
X |
titleImageText | String |
이미지 아이템의 제목 최대 2줄, 최대 24자까지 출력 |
X |
titleImageUrl | String |
이미지 아이템의 이미지 iOS 108*108 , Android 98*98 크기1:1 비율이 아닌 이미지는 센터 크롭(Center crop) 방식으로 재조정됨 |
X |
titleImageCategory | String |
이미지 아이템의 제목 아래에 회색 글씨로 출력되는 카테고리 정보 최대 한 줄, 최대 14자까지 출력 |
X |
items | [ItemInfo] |
각 텍스트 아이템 정보 아이템 이름과 가격에 해당하는 item , itemOp 를 포함한 배열, 최대 5개의 아이템 지원 |
X |
sum | String |
주문금액, 결제금액 등 아이템 영역의 요약 정보 제목 텍스트 아이템 영역 아래에 최대 6자까지 출력 중요: 🅖 영역에 하나 이상의 아이템이 있고, sum 과 sumOp 값을 모두 전달해야 🅗 영역이 출력됨참고: 🅗 영역 사용 시 🅖, 🅗 영역의 itemOp , sumOp 는 오른쪽 정렬되고, 미사용 시에는 왼쪽 정렬됨 |
X |
sumOp | String |
아이템 영역의 가격 합산 정보 텍스트 아이템 영역 아래에 볼드체로 최대 11자까지 출력 중요: 🅖 영역에 하나 이상의 아이템이 있고, sum 과 sumOp 값을 모두 전달해야 🅗 영역이 출력됨참고: 🅗 영역 사용 시 🅖, 🅗 영역의 itemOp , sumOp 는 오른쪽 정렬되고, 미사용 시에는 왼쪽 정렬됨 |
X |
Flutter SDK를 사용하는 경우 ItemContent
클래스를 사용합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
profileText | String |
헤더 또는 프로필 영역에 출력될 텍스트profileImageUrl 값이 없을 경우, 볼드(Bold)체로 된 제목만 담은 헤더 형태로 출력됨최대 16자까지 출력 |
X |
profileImageUrl | String |
프로필 영역에 출력될 이미지 작은 원형의 프로필 사진 형태로 출력됨 |
X |
titleImageText | String |
이미지 아이템의 제목 최대 2줄, 최대 24자까지 출력 |
X |
titleImageUrl | String |
이미지 아이템의 이미지 iOS 108*108 , Android 98*98 크기1:1 비율이 아닌 이미지는 센터 크롭(Center crop) 방식으로 재조정됨 |
X |
titleImageCategory | String |
이미지 아이템의 제목 아래에 회색 글씨로 출력되는 카테고리 정보 최대 한 줄, 최대 14자까지 출력 |
X |
items | List<ItemInfo> |
각 텍스트 아이템 정보 아이템 이름과 가격에 해당하는 item , itemOp 를 포함한 리스트, 최대 5개의 아이템 지원 |
X |
sum | String |
주문금액, 결제금액 등 아이템 영역의 요약 정보 제목 텍스트 아이템 영역 아래에 최대 6자까지 출력 중요: 🅖 영역에 하나 이상의 아이템이 있고, sum 과 sumOp 값을 모두 전달해야 🅗 영역이 출력됨참고: 🅗 영역 사용 시 🅖, 🅗 영역의 itemOp , sumOp 는 오른쪽 정렬되고, 미사용 시에는 왼쪽 정렬됨 |
X |
sumOp | String |
아이템 영역의 가격 합산 정보 텍스트 아이템 영역 아래에 볼드체로 최대 11자까지 출력 중요: 🅖 영역에 하나 이상의 아이템이 있고, sum 과 sumOp 값을 모두 전달해야 🅗 영역이 출력됨참고: 🅗 영역 사용 시 🅖, 🅗 영역의 itemOp , sumOp 는 오른쪽 정렬되고, 미사용 시에는 왼쪽 정렬됨 |
X |
텍스트 아이템 목록 중 하나의 텍스트 아이템에 대한 정보입니다.
이름 | 타입 | 설명 | 영역 | 필수 |
---|---|---|---|---|
item | String |
아이템 이름 최대 6자까지 출력 |
🅖 | O |
item_op | String |
아이템 가격 사용 가능한 문자: 숫자, 통화기호, 쉼표(,), 마침표(.), 띄어쓰기 소수 단위 금액을 포함한 경우, 소수점 아래 2자리까지만 사용 권장 최대 2줄, 1줄인 경우 최대 14자, 2줄인 경우 최대 25자까지 출력 |
🅖 | O |
이름 | 타입 | 설명 | 영역 | 필수 |
---|---|---|---|---|
item | String |
아이템 이름 최대 6자까지 출력 |
🅖 | O |
itemOp | String |
아이템 가격 사용 가능한 문자: 숫자, 통화기호, 쉼표(,), 마침표(.), 띄어쓰기 소수 단위 금액을 포함한 경우, 소수점 아래 2자리까지만 사용 권장 최대 2줄, 1줄인 경우 최대 14자, 2줄인 경우 최대 25자까지 출력 |
🅖 | O |
Android SDK를 사용하는 경우 ItemInfo
클래스를 사용합니다.
이름 | 타입 | 설명 | 영역 | 필수 |
---|---|---|---|---|
item | String |
아이템 이름 최대 6자까지 출력 |
🅖 | O |
itemOp | String |
아이템 가격 사용 가능한 문자: 숫자, 통화기호, 쉼표(,), 마침표(.), 띄어쓰기 소수 단위 금액을 포함한 경우, 소수점 아래 2자리까지만 사용 권장 최대 2줄, 1줄인 경우 최대 14자, 2줄인 경우 최대 25자까지 출력 |
🅖 | O |
iOS SDK를 사용하는 경우 ItemInfo
클래스를 사용합니다.
이름 | 타입 | 설명 | 영역 | 필수 |
---|---|---|---|---|
item | String |
아이템 이름 최대 6자까지 출력 |
🅖 | O |
itemOp | String |
아이템 가격 사용 가능한 문자: 숫자, 통화기호, 쉼표(,), 마침표(.), 띄어쓰기 소수 단위 금액을 포함한 경우, 소수점 아래 2자리까지만 사용 권장 최대 2줄, 1줄인 경우 최대 14자, 2줄인 경우 최대 25자까지 출력 |
🅖 | O |
Flutter SDK를 사용하는 경우 ItemInfo
클래스를 사용합니다.
이름 | 타입 | 설명 | 영역 | 필수 |
---|---|---|---|---|
item | String |
아이템 이름 최대 6자까지 출력 |
🅖 | O |
itemOp | String |
아이템 가격 사용 가능한 문자: 숫자, 통화기호, 쉼표(,), 마침표(.), 띄어쓰기 소수 단위 금액을 포함한 경우, 소수점 아래 2자리까지만 사용 권장 최대 2줄, 1줄인 경우 최대 14자, 2줄인 경우 최대 25자까지 출력 |
🅖 | O |
상품 정보를 나타낼수 있는 텍스트 아이템 정보입니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
product_name | String |
상품 이름 및 제목, 최대 2줄 출력 상품 가격보다 위에 검은 글씨로 출력 |
X |
regular_price | Int |
정상 가격 | O |
discount_price | Int |
할인된 가격 | X |
discount_rate | Int |
할인률 | X |
fixed_discount_price | Int |
정액 할인 가격, 할인율과 동시 사용 불가 | X |
currency_unit | String |
통화 단위 또는 기호 (예: 원, USD, ₩, $ 등) (기본값: 원) |
X |
currency_unit_position | Int |
통화 단위 표시 위치 0 : 가격 뒤에 표시1 : 가격 앞에 표시 (기본값: 0 ) |
X |
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
productName | String |
상품 이름 및 제목, 최대 2줄 출력 상품 가격보다 위에 검은 글씨로 출력 |
X |
regularPrice | Int |
정상 가격 | O |
discountPrice | Int |
할인된 가격 | X |
discountRate | Int |
할인률 | X |
fixedDiscountPrice | Int |
정액 할인 가격, 할인율과 동시 사용 불가 | X |
currencyUnit | String |
통화 단위 또는 기호 (예: 원, USD, ₩, $ 등) (기본값: 원) |
X |
currencyUnitPosition | Int |
통화 단위 표시 위치 0 : 가격 뒤에 표시1 : 가격 앞에 표시 (기본값: 0 ) |
X |
Android SDK를 사용하는 경우 Commerce
클래스를 사용합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
productName | String |
상품 이름 및 제목, 최대 2줄 출력 상품 가격보다 위에 검은 글씨로 출력 |
X |
regularPrice | Int |
정상 가격 | O |
discountPrice | Int |
할인된 가격 | X |
discountRate | Int |
할인률 | X |
fixedDiscountPrice | Int |
정액 할인 가격, 할인율과 동시 사용 불가 | X |
currencyUnit | String |
통화 단위 또는 기호 (예: 원, USD, ₩, $ 등) (기본값: 원) |
X |
currencyUnitPosition | Int |
통화 단위 표시 위치 0 : 가격 뒤에 표시1 : 가격 앞에 표시 (기본값: 0 ) |
X |
iOS SDK를 사용하는 경우 CommerceDetail
클래스를 사용합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
productName | String |
상품 이름 및 제목, 최대 2줄 출력 상품 가격보다 위에 검은 글씨로 출력 |
X |
regularPrice | Int |
정상 가격 | O |
discountPrice | Int |
할인된 가격 | X |
discountRate | NSNumber |
할인률 | X |
fixedDiscountPrice | Int |
정액 할인 가격, 할인율과 동시 사용 불가 | X |
currencyUnit | String |
통화 단위 또는 기호 (예: 원, USD, ₩, $ 등) (기본값: 원) |
X |
currencyUnitPosition | Int |
통화 단위 표시 위치 0 : 가격 뒤에 표시1 : 가격 앞에 표시 (기본값: 0 ) |
X |
Flutter SDK를 사용하는 경우 Commerce
클래스를 사용합니다.
이름 | 타입 | 설명 | 필수 |
---|---|---|---|
productName | String |
상품 이름 및 제목, 최대 2줄 출력 상품 가격보다 위에 검은 글씨로 출력 |
X |
regularPrice | Int |
정상 가격 | O |
discountPrice | Int |
할인된 가격 | X |
discountRate | Int |
할인률 | X |
fixedDiscountPrice | Int |
정액 할인 가격, 할인율과 동시 사용 불가 | X |
currencyUnit | String |
통화 단위 또는 기호 (예: 원, USD, ₩, $ 등) (기본값: 원) |
X |
currencyUnitPosition | Int |
통화 단위 표시 위치 0 : 가격 뒤에 표시1 : 가격 앞에 표시 (기본값: 0 ) |
X |