페이지 이동경로
  • 문서>
  • 메시지 템플릿>
  • 기본 템플릿

메시지 템플릿

기본 템플릿

이 문서는 카카오톡 메시지 API 또는 카카오톡 공유 API로 보낼 메시지를 사전 정의(Predefined)된 기본 템플릿으로 구성하는 방법을 안내합니다.

개요

기본 템플릿은 정의된 형식에 따라 메시지를 객체 형태로 구성한 템플릿 형식입니다. 기본 템플릿에 대한 특징은 이해하기를 참고합니다.

사용 방법

  1. 템플릿 종류를 참고하여 어떤 메시지 템플릿을 사용할지 결정합니다.
  2. 원하는 템플릿의 정의된 형식에 맞게 템플릿 객체를 구성합니다.
  3. 카카오톡 메시지 API 또는 카카오톡 공유 API 호출 시, 구성한 템플릿 객체를 각 언어별로 지정된 파라미터 이름에 맞게 전달하여 메시지를 발송합니다. 언어별, 템플릿 종류에 따라 파라미터 이름이 다르므로, 예제와 사용하는 플랫폼의 개발 문서를 참고합니다.

피드 템플릿

피드 템플릿을 사용하려면 아래와 같이 객체를 구성해야 합니다.

REST API
JavaScript
Android
iOS
Flutter
이름 타입 설명 필수
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'},
      ),
    ),
  ],
);

리스트 템플릿

리스트 템플릿을 사용하려면 아래와 같이 객체를 구성해야 합니다.

REST API
JavaScript
Android
iOS
Flutter
이름 타입 설명 필수
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, 헤더 영역 배경 이미지, 공지 참고

커머스 템플릿

커머스 템플릿을 사용하려면 아래와 같이 객체를 구성해야 합니다.

REST API
JavaScript
Android
iOS
Flutter
이름 타입 설명 필수
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'},
      ),
    )
  ],
);

위치 템플릿

위치 템플릿을 사용하려면 아래와 같이 객체를 구성해야 합니다.

REST API
JavaScript
Android
iOS
Flutter
이름 타입 설명 필수
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),
);

텍스트 템플릿

텍스트 템플릿을 사용하려면 아래와 같이 객체를 구성해야 합니다.

REST API
JavaScript
Android
iOS
Flutter
이름 타입 설명 필수
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'),
  ),
);

캘린더 템플릿

캘린더 템플릿을 사용하려면 아래와 같이 객체를 구성해야 합니다.

REST API
JavaScript
Android
iOS
Flutter
이름 타입 설명 필수
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'),
      ),
    )
  ],
);

공통 구성 요소

메시지 템플릿을 구성하는 공통 요소를 설명합니다.

Content

메시지 제목, 본문, 이미지 정보와 같은 메시지의 기본 콘텐츠 정보를 담는 객체입니다.

이미지의 경우, URL로 전달해야 하며, RFC2396, RFC1034, RFC1123를 준수해야 합니다. 규격에 맞지 않는 이미지 URL은 이미지가 보이지 않습니다.

REST API
JavaScript
Android
iOS
Flutter
이름 타입 설명 필수
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 중 하나 필수


Button

메시지에 포함되는 버튼의 정보를 담는 객체입니다. 버튼의 텍스트와 클릭 시 동작을 정의합니다.

메시지 구성 시 buttonTitle, buttons 모두 주어졌다면 buttons를 우선 사용합니다. 둘 다 주어지지 않았을 때에는 기본 타이틀과 content에 있는 link 정보로 버튼 하나가 구성됩니다.

REST API
JavaScript
Android
iOS
Flutter
이름 타입 설명 필수
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

Link

메시지에서 콘텐츠 영역이나 버튼 클릭 시에 이동되는 링크 정보를 담은 객체입니다.

플랫폼별로 각각 링크를 설정할 수 있으며, 사용자의 카카오톡 실행 환경에 따라 적합한 링크가 동작합니다. Web 링크는 PC/Mac, Android, iOS 모두 지원됩니다. Android와 iOS 링크는 해당 플랫폼에서만 버튼에 적용됩니다. 자세한 사항은 링크 동작 방식을 참고합니다.

메시지에 링크를 적용하려면 link의 필드 중 최소 하나 이상 설정 필수이며, 링크 설정이 없거나 사용자의 카카오톡 실행 환경에서 사용할 수 있는 링크 설정이 없다면 메시지 콘텐츠 영역에 링크가 적용되지 않거나 버튼이 나타나지 않습니다.

REST API
JavaScript
Android
iOS
Flutter
이름 타입 설명 필수
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 중 하나 필수

Social

콘텐츠의 좋아요, 댓글, 공유, 조회, 구독 수 등 소셜 지표를 표시하는 영역을 표시하기 위한 객체입니다.

REST API
JavaScript
Android
iOS
Flutter
이름 타입 설명 필수
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

ItemContent

피드 B형 템플릿에서 사용할 수 있는 텍스트 아이템 정보입니다.

REST API
JavaScript
Android
iOS
Flutter
이름 타입 설명 필수
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자까지 출력

중요: 🅖 영역에 하나 이상의 아이템이 있고, sumsum_op 값을 모두 전달해야 🅗 영역이 출력됨
참고: 🅗 영역 사용 시 🅖, 🅗 영역의 item_op, sum_op는 오른쪽 정렬되고, 미사용 시에는 왼쪽 정렬됨
X
sum_op String 아이템 영역의 가격 합산 정보
텍스트 아이템 영역 아래에 볼드체로 최대 11자까지 출력

중요: 🅖 영역에 하나 이상의 아이템이 있고, sumsum_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자까지 출력

중요: 🅖 영역에 하나 이상의 아이템이 있고, sumsumOp 값을 모두 전달해야 🅗 영역이 출력됨
참고: 🅗 영역 사용 시 🅖, 🅗 영역의 itemOp, sumOp는 오른쪽 정렬되고, 미사용 시에는 왼쪽 정렬됨
X
sumOp String 아이템 영역의 가격 합산 정보
텍스트 아이템 영역 아래에 볼드체로 최대 11자까지 출력

중요: 🅖 영역에 하나 이상의 아이템이 있고, sumsumOp 값을 모두 전달해야 🅗 영역이 출력됨
참고: 🅗 영역 사용 시 🅖, 🅗 영역의 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자까지 출력

중요: 🅖 영역에 하나 이상의 아이템이 있고, sumsumOp 값을 모두 전달해야 🅗 영역이 출력됨
참고: 🅗 영역 사용 시 🅖, 🅗 영역의 itemOp, sumOp는 오른쪽 정렬되고, 미사용 시에는 왼쪽 정렬됨
X
sumOp String 아이템 영역의 가격 합산 정보
텍스트 아이템 영역 아래에 볼드체로 최대 11자까지 출력

중요: 🅖 영역에 하나 이상의 아이템이 있고, sumsumOp 값을 모두 전달해야 🅗 영역이 출력됨
참고: 🅗 영역 사용 시 🅖, 🅗 영역의 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자까지 출력

중요: 🅖 영역에 하나 이상의 아이템이 있고, sumsumOp 값을 모두 전달해야 🅗 영역이 출력됨
참고: 🅗 영역 사용 시 🅖, 🅗 영역의 itemOp, sumOp는 오른쪽 정렬되고, 미사용 시에는 왼쪽 정렬됨
X
sumOp String 아이템 영역의 가격 합산 정보
텍스트 아이템 영역 아래에 볼드체로 최대 11자까지 출력

중요: 🅖 영역에 하나 이상의 아이템이 있고, sumsumOp 값을 모두 전달해야 🅗 영역이 출력됨
참고: 🅗 영역 사용 시 🅖, 🅗 영역의 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자까지 출력

중요: 🅖 영역에 하나 이상의 아이템이 있고, sumsumOp 값을 모두 전달해야 🅗 영역이 출력됨
참고: 🅗 영역 사용 시 🅖, 🅗 영역의 itemOp, sumOp는 오른쪽 정렬되고, 미사용 시에는 왼쪽 정렬됨
X
sumOp String 아이템 영역의 가격 합산 정보
텍스트 아이템 영역 아래에 볼드체로 최대 11자까지 출력

중요: 🅖 영역에 하나 이상의 아이템이 있고, sumsumOp 값을 모두 전달해야 🅗 영역이 출력됨
참고: 🅗 영역 사용 시 🅖, 🅗 영역의 itemOp, sumOp는 오른쪽 정렬되고, 미사용 시에는 왼쪽 정렬됨
X

ItemInfo

텍스트 아이템 목록 중 하나의 텍스트 아이템에 대한 정보입니다.

REST API
JavaScript
Android
iOS
Flutter
이름 타입 설명 영역 필수
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

Commerce

상품 정보를 나타낼수 있는 텍스트 아이템 정보입니다.

REST API
JavaScript
Android
iOS
Flutter
이름 타입 설명 필수
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