이 문서는 카카오톡 메시지 API 또는 카카오톡 공유 API로 보낼 메시지를 메시지 템플릿 도구로 구성하는 방법을 안내합니다.
사용자 정의 템플릿은 메시지 템플릿 도구를 이용해 메시지를 구성한 템플릿 형식입니다. 사용자 정의 템플릿에 대한 특징은 이해하기를 참고합니다.
메시지 템플릿 도구는 사용자 인터페이스로 메시지를 쉽게 구성할 수 있게 해주는 도구입니다. 메시지 템플릿 도구를 이용하면 개발 지식이 없어도 UI로 쉽게 메시지 템플릿을 생성할 수 있습니다. 메시지 발송 API 호출 시 템플릿 ID만 전달하면 구성한 템플릿 형태로 메시지가 전달됩니다.
template_id
값으로 생성한 템플릿 ID를 전달해 API를 호출합니다.사용자 정의 템플릿으로 메시지 발송 시 필요한 템플릿 ID는 메시지 템플릿 설정 화면의 🅑 또는 🅒 영역에서 확인할 수 있습니다.
🅐 앱 정보: 현재 선택된 앱 정보 표시, 앱 이름 옆 목록 아이콘을 눌러 다른 앱 선택 가능 🅑 메시지 템플릿 추가: 선택한 앱에 새 메시지 템플릿 추가 🅒 검색 및 필터링 영역: 대상을 입력하거나 설정 상태나 조건(템플릿 제목, 메시지 제목, 본문, 버튼명 등)을 선택하여 원하는 템플릿만 모아보기 가능 🅓 템플릿 목록: 선택한 앱에 등록된 전체 템플릿 목록, 템플릿 선택 시 상세 설정 페이지로 이동 🅔 더보기 버튼: 해당 템플릿을 복사하거나 삭제
🅐 앱 정보: 현재 선택된 앱 정보, 앱 이름 옆 목록 아이콘을 눌러 다른 앱 선택 가능 🅑 템플릿 목록: 선택한 앱에 등록된 전체 템플릿 목록, 템플릿 선택 시 상세 설정 페이지로 이동 🅒 메시지 템플릿 정보: 템플릿 ID와 종류 표시, 템플릿 수정 사항을 저장하거나 템플릿 삭제 🅓 검색 결과: 검색 전 메시지 템플릿 목록으로 이동 🅔 공통 설정: 템플릿 종류에 상관 없이 제공되는 공통 설정 🅕 구성 요소별 설정: 각 구성 요소 상세 설정, 메시지 타입에 따라 설정할 수 있는 구성 요소 상이 (참고: 종류별 구성 요소 지원 여부) 🅖 미리보기: 현재 설정을 반영한 메시지 미리보기, 각 구성 요소 클릭 시 해당 설정 화면으로 이동함 🅗 저장: 수정 사항 저장, 🅒의 [저장]과 동일한 기능
메시지 템플릿 종류에 따라 지원하는 구성 요소가 다릅니다. 아래는 템플릿 종류별로 설정할 수 있는 구성 요소입니다. 구성 요소 이름을 눌러 상세 정보를 확인할 수 있습니다. 이 표를 참고해 어떤 템플릿을 사용할 지 결정합니다.
템플릿 종류 | 피드 A형 | 피드 B형 | 리스트 | 커머스 |
---|---|---|---|---|
이미지 | O | O | X | O |
프로필 | O | O | X | O |
헤더 | O* | O* | O | X |
프로필 | O* | O* | X | O |
이미지 아이템 | O | O | X | X |
텍스트 아이템 리스트 | O | O | X | X |
메시지 제목/본문 | O | O | X | X |
소셜 | O | O | X | X |
아이템 리스트 | X | X | O | X |
상품 | X | X | X | O |
상품 설명 | X | X | X | O |
버튼 | O | O | O | O |
컴포넌트 링크 관리 | O | O | O | O |
* 헤더 또는 프로필 둘 중 하나만 사용 가능
메시지 템플릿 도구에서 구성 요소별로 설정할 수 있는 항목을 안내합니다.
템플릿 종류에 상관 없이 공통으로 제공되는 설정입니다.
설정 항목 | 설명 |
---|---|
사용 목적 | 메시지를 발송할 기능을 카카오톡 공유 또는 카카오톡 메시지 API 중 선택합니다. 중요: 카카오톡 메시지 API 중 나에게 발송 기능만 사용할 경우, 사용 목적을 [카카오톡 공유]로 설정해야 합니다. |
전달 허용 | 메시지에 [전달] 버튼을 포함할 것인지 설정할 수 있습니다. [허용(true)]: [전달] 버튼 포함 [불가(false)]: [전달] 버튼 포함하지 않음 [사용자 인자]: 메시지 전송 요청 시 사용자 인자로 [전달] 버튼 포함 여부 지정 |
메시지 구성 요소 중 콘텐츠의 일부에 해당하는 설정입니다. 이미지를 모두 삭제하면 메시지에서 이미지 영역을 제외할 수 있습니다.
설정 항목 | 설명 |
---|---|
이미지 | 최대 3장의 이미지를 등록할 수 있으며, 각 이미지 파일의 크기는 5MB 이하여야 합니다. [사용자 인자]로 설정하면 사용자 인자를 사용하도록 설정할 수 있습니다. 메시지 전송 요청 시, 해당 사용자 인자에 대한 이미지 URL 값을 전달해 원하는 이미지로 채울 수 있습니다. |
이미지 사이즈 | 최소 400px * 400px, 최대 800px * 800px로 설정할 수 있습니다. 가로세로 비율은 최소 2:1, 최대 3:4입니다. 등록한 이미지들의 사이즈가 설정대로 변경되어 메시지에 포함됩니다. |
비율 | 메시지에 포함된 이미지의 비율을 설정합니다. 이미지 사이즈를 설정한 경우에는 비율을 [Center Crop(0)]으로 설정해야 합니다. 비율을 설정하더라도 미리보기에는 반영되지 않으므로, 테스트 메시지를 보내 실제 출력되는 모습을 확인해야 합니다. 비율 설정은 이미지가 2개 이상인 경우 적용되지 않습니다. [Center Crop(0)]: 이미지 사이즈에 맞춰 이미지를 가운데 정렬하고, 영역을 벗어나는 부분은 보이지 않게 합니다. [원본 비율 유지(1)]: 1:1 비율의 영역 안에 이미지를 원래 비율대로 출력하고, 남는 공간은 흰색으로 채웁니다. [Custom(0, 1)]: 메시지 전송 요청 시 사용자 인자 값으로 지정하도록 합니다. [Center Crop(0)] 또는 [원본 비율 유지(1)] 중 하나로 요청 시 전달합니다. |
생중계 마크 | 동영상이나 이미지로 생중계 방송을 공유할 때 유용한 설정으로, 'LIVE' 라벨을 이미지에 오른쪽 아래에 부착합니다. |
재생시간 | 동영상을 공유할 때 유용한 설정으로, 공유한 동영상의 재생시간 라벨을 이미지 오른쪽 아래에 부착합니다. |
이미지 아래의 영역의 이미지와 메시지 제목/본문 사이에 나타나는 프로필 형태의 정보를 설정합니다. 마치 프로필의 인물이나 서비스가 정보를 게시한 것처럼 보이게 할 수 있습니다.
설정 항목 | 설명 |
---|---|
이미지 | 프로필 이미지입니다. 원형으로 테두리를 다듬어 출력됩니다. 5MB 이하인 한 장의 이미지만 올릴 수 있습니다. [사용자 인자]로 설정하면 메시지 전송 요청 시 사용자 인자 값으로 이미지 URL 값을 전달해 원하는 이미지로 채울 수 있습니다. |
이미지 사이즈 | 가로 800 픽셀, 세로 800 픽셀이 최대 값입니다. 프로필 이미지는 작은 원형으로 표시되므로, 출력 비율에만 영향을 줍니다. |
프로필명 | 프로필 닉네임을 설정합니다. 너무 길게 설정하면 말줄임표(...)로 생략됩니다. |
피드 메시지와 리스트 메시지에서 상단에 표시할 제목 영역을 설정합니다. 피드 메시지는 프로필과 헤더 중 하나만 사용할 수 있습니다.
설정 항목 | 설명 |
---|---|
헤더명 | 메시지의 상단의 제목을 설정합니다. |
제목, 카테고리, 이미지로 구성된 하나의 아이템 정보를 입력할 수 있습니다.
설정 항목 | 설명 |
---|---|
제목 | 아이템의 제목 또는 이름입니다. 최대 2줄까지 출력되며, 출력 가능 길이 초과 시 말줄임표(...)로 생략됩니다. |
카테고리 | 아이템의 카테고리나 부가 정보입니다. 최대 1줄까지 출력되며, 출력 가능 길이 초과 시 말줄임표(...)로 생략됩니다. |
이미지 | 아이템의 이미지입니다. 5MB 이하인 한 장의 이미지만 올릴 수 있습니다. [사용자 인자]로 설정하면 메시지 전송 요청 시 사용자 인자 값으로 이미지 URL 값을 전달해 원하는 이미지로 채울 수 있습니다. |
각 아이템의 정보로, 최대 5개까지 설정할 수 있습니다.
설정 항목 | 설명 |
---|---|
제목 | 아이템의 제목 또는 이름입니다. 제목과 설명을 모두 입력하지 않으면 해당 아이템이 메시지에 출력되지 않습니다. 최대 6자까지 출력되며, 출력 가능 길이 초과 시 말줄임표(...)로 생략됩니다. |
설명 | 아이템의 설명입니다. 제목과 설명을 모두 입력하지 않으면 해당 아이템이 메시지에 출력되지 않습니다. 최대 2줄까지 출력되며, 출력 가능 길이 초과 시 말줄임표(...)로 생략됩니다. |
요약 제목 | 아이템 리스트의 내용을 종합 또는 요약하는 내용의 제목입니다. 최대 6자까지 출력되며, 하나 이상의 아이템이 있어야만 출력됩니다. |
요약 설명 | 아이템 리스트의 내용을 종합 또는 요약하는 내용의 설명입니다. 하나 이상의 아이템이 있어야만 출력됩니다. 최대 11자까지 출력되며, 출력 가능 길이 초과 시 말줄임표(...)로 생략됩니다. |
텍스트 정렬 | 아이템 리스트 및 요약 정보의 설명 정렬 위치를 설정합니다. [왼쪽(left)], [오른쪽(right)], [가운데(center)], [사용자 인자] 중에서 선택할 수 있습니다. [사용자 인자]로 설정하면 메시지 전송 요청 시 사용자 인자 값으로 정렬 위치를 지정할 수 있습니다. (예: {"${AL}":"left"} ) |
메시지 구성 요소 중 콘텐츠의 일부에 해당하며, 영역에 글자로 출력되는 제목과 설명을 설정합니다. 메시지 제목/본문은 제목 두 줄, 설명 두 줄까지만 출력됩니다. 두 줄이 넘어가는 글은 잘려 보일 수 있습니다.
설정 항목 | 설명 |
---|---|
메시지 제목 | 검은 글씨로 출력되는 메시지 제목입니다. |
본문 | 메시지 제목 보다 작은 회색 글씨로 출력되는 메시지 내용입니다. |
메시지 구성 요소 중 소셜에 해당하는 설정입니다. 마치 메시지로 공유한 내용이 많은 사용자들의 관심과 호응을 받은 것처럼 보이게 할 수 있고, 사용자 인자를 활용해 실제 사용자들의 좋아요나 댓글 수를 반영할 수도 있습니다.
소셜 영역에는 최대 3가지 정보만 출력할 수 있습니다. 값을 입력하지 않은 항목이 소셜 영역에서 제외됩니다. 3개를 초과하는 항목이 입력됐을 경우, 우선 노출순위는 좋아요 > 댓글 > 공유 > 조회 > 구독자순입니다.
설정 항목 | 설명 |
---|---|
좋아요 | 하트 아이콘과 함께 표시되는 사용자 반응 수입니다. |
댓글 | 말풍선 아이콘과 함께 표시되는 사용자 댓글 수입니다. |
공유 | 공유 아이콘과 함께 표시되는 공유 수입니다. |
조회 | 눈동자 아이콘과 함께 표시되는 조회 수입니다. |
구독자 | 사람 아이콘과 함께 표시되는 구독자 수입니다. |
메시지 구성 요소 중 리스트에 해당하며, 리스트 영역은 여러 개의 아이템을 목록 형태로 메시지에 담아 보여줍니다. 최대 5개의 아이템을 목록에 담을 수 있습니다. 아이템은 최소 1개 이상 존재해야 합니다.
설정 항목 | 설명 |
---|---|
제목 | 아이템의 제목으로, 너무 길면 내용이 중간에 잘려 보이게 됩니다. |
설명 | 아이템의 설명으로 제목보다 작은 회색 글씨로 출력됩니다. 너무 길면 내용이 중간에 잘려 보이게 됩니다. |
리스트 랭킹 | 아이템마다 숫자로 된 랭킹 표시를 넣고 싶을 때 설정합니다. [사용함]을 선택하면 리스트의 아이템이 숫자로 된 순위와 함께 나타납니다. 아이템 목록을 순위 정보처럼 보여주고자 할 때 유용한 설정입니다. [사용자 인자]로 설정하면 해당 사용자 인자 값으로 [사용함(true)] 또는 [사용 안 함(false)]을 전달하여 랭킹 사용 여부를 설정할 수 있습니다. 아이템별 숫자는 1부터 5까지이고, 먼저 입력된 순서대로 숫자가 부여됩니다. |
이미지 | 아이템의 오른쪽에 작은 이미지를 추가합니다. 최대 5MB까지 업로드 가능합니다. [사용자 인자]로 설정하면 메시지 전송 요청 시 이미지 URL 값을 전달해 원하는 이미지로 채울 수 있습니다. |
이미지 사이즈 | 가로 800 픽셀, 세로 800 픽셀이 최대 값입니다. 출력 비율에만 영향을 줍니다. |
비율 | 이미지 비율을 설정합니다. 미리보기를 지원하지 않으므로 테스트 메시지로 확인해야 합니다. |
생중계 마크 | 동영상이나 이미지로 생중계 방송을 공유할 때 유용한 설정으로, [LIVE] 라벨을 이미지에 오른쪽 아래에 부착합니다. |
재생 시간 | 동영상을 공유할 때 유용한 설정으로, 공유한 동영상의 재생시간 라벨을 이미지 오른쪽 아래에 부착합니다. |
커머스 메시지의 상품 이름 및 가격 정보를 설정합니다. 메시지 구성 요소 중 커머스의 하위 항목인 commerce
에 해당합니다. 이미지 > 프로필 > 상품 설명 순서로 위치합니다.
설정 항목 | 설명 |
---|---|
상품명 | 상품 이름 및 제목, 최대 2줄 출력 상품 가격보다 위에 검은 글씨로 출력 |
가격 | 상품의 정상 가격 |
할인률 | 할인률 |
할인된 가격 | 할인된 가격 |
통화 단위 | 통화 단위 또는 기호 (예: 원, USD, ₩, $ 등) (기본값: 원) |
통화 단위 위치 | 아래 중 하나 선택 [가격 뒤(0)]: 가격 뒤에 통화 단위 표시 [가격 앞(1)]: 가격 앞에 통화 단위 표시 [사용자 인자]: 사용자 인자(기본값: ${CP} )를 입력하면 메시지 전송 시 해당 인자의 값에 따라 위치가 결정됨, 인자 값이 0이면 가격 뒤에, 인자 값이 1이면 가격 앞에 통화 단위 표시 |
커머스 메시지의 상품 설명을 설정하는 메뉴입니다. 메시지 구성 요소 중 커머스의 description
에 해당합니다.
설정 항목 | 설명 |
---|---|
상품 설명 | 상품 설명을 입력합니다. 가격 정보 아래에 최대 2줄까지 출력됩니다. |
메시지 구성 요소 중 버튼에 해당합니다. 사용자 정의 템플릿에는 1~2개의 회색 버튼을 추가할 수 있습니다. 버튼은 사용자를 웹 페이지 또는 앱으로 이동시키기 위한 용도로 사용합니다.
설정 항목 | 설명 |
---|---|
버튼명 | 버튼에 출력되는 글씨를 설정합니다. 너무 길면 문구가 잘려 보이게 됩니다. |
버튼 노출 대상 | 버튼을 메시지를 [보내는 이에게만(sender)], [받는이에게만(receiver)] 등 특정 사용자에게만 출력할 것인지 설정합니다. |
링크 설정 | 개별링크 설정으로 선택하면 버튼마다 사용자 클릭 시 이동할 링크 정보를 설정할 수 있습니다. 링크 정보의 우선순위와 실행 조건은 링크를 참고합니다. [공통링크 사용]으로 설정하면 공통 링크에 설정된 정보로 모든 버튼의 링크가 설정됩니다. |
버튼 정렬 | 버튼이 2개일 때 참고하는 정렬 기준입니다. [가로(0)]로 설정하면 가로 크기가 작은 버튼 두 개가 좌우로 나란히, [세로(1)]로 설정하면 1개일 때와 같은 크기의 버튼 두개가 위아래로 출력됩니다. [사용자 인자]로 설정하면, 메시지 전송 요청 시 정렬 방식을 지정할 수 있습니다. |
메시지 구성 요소 중 링크를 설정합니다. 링크 설정은 크게 세 가지로 나뉩니다.
공통링크는 각 사용자 환경에 해당하는 플랫폼 설정을 반영하므로 사용자마다 링크가 다르게 동작할 수 있습니다. 또한 사용자 인자를 사용해 동적으로 랜딩 설정을 할 수도 있습니다. 사용자 환경이나 사용자 변수에 따라 랜딩 설정이 동적으로 변경되지 않도록 하려면 메시지 템플릿에 고정적인 개별링크를 설정해 사용하는 것이 좋습니다.
각 링크에 설정 가능한 항목은 아래와 같습니다. 링크 정보의 우선순위와 실행 조건은 링크를 참고합니다.
설정 항목 | 설명 |
---|---|
Mobile Web | 메시지 수신자 환경이 모바일인 경우 동작합니다. 앱 정보에 Web 플랫폼이 등록돼 있어야 설정 가능합니다. [DOMAIN]: 플랫폼에 등록된 도메인 중 선택할 수 있습니다. [PATH]: 전체 URL에서 도메인을 제외한 값으로 입력합니다. |
Web | 메시지 수신자 환경이 PC인 경우 동작합니다. 앱 정보에 Web 플랫폼이 등록돼 있어야 설정 가능합니다. 설정 항목은 [Mobile Web]과 동일합니다. |
Android Scheme | 앱 정보에 Android 플랫폼이 등록돼 있어야 설정 가능합니다. [SCHEME]: 플랫폼 설정에 따라 kakao${NATIVE_APP_KEY}://kakaolink 형식으로 자동 입력됩니다.[PARAMETER]: 앱 실행 시 전달할 값들을 설정합니다. 메시지로 앱을 실행한 사용자인지 확인하거나 특정 페이지로 이동시키는 등의 맞춤식 처리를 위해 사용할 수 있습니다. 사용자 인자를 지원합니다. |
Android Market | 서비스 앱이 설치되지 않은 Android 환경에서 동작합니다. 앱 정보에 Android 플랫폼이 등록돼 있어야 설정 가능합니다. |
iOS Scheme | 앱 정보에 iOS 플랫폼이 등록돼 있어야 설정 가능합니다. 설정 항목은 [Android Scheme]과 동일합니다. |
iOS Market | 서비스 앱이 설치되지 않은 iOS 환경에서 동작합니다. 앱 정보에 iOS 플랫폼이 등록돼 있어야 설정 가능합니다. |
사용자 인자는 메시지 템플릿에서 동적으로 값을 변경할 수 있는 변수입니다. 메시지 템플릿을 만들 때 ${KEY}
형식으로 변수를 지정해두면, 메시지를 보낼 때마다 각 사용자에게 맞는 값으로 대체할 수 있습니다.
사용자 인자를 사용하면 하나의 템플릿으로 여러 사용자에게 각각 다른 내용의 메시지를 보낼 수 있습니다. 예를 들어 아래와 같은 상황에서 사용자 인자를 활용할 수 있습니다.
메시지 템플릿에서 사용자 인자를 활용하는 방법은 두 가지가 있습니다.
메시지 제목/본문이나 헤더와 같은 텍스트 입력란에 직접 ${KEY}
형식으로 사용자 인자를 입력해 사용합니다.
${KEY}
형식으로 사용자 인자를 입력합니다.${user_name}
, ${order_id}
등template_args
필드에 각 키에 대응하는 값을 전달합니다.{"template_args": {"user_name": "홍길동", "order_id": "A001-23948"}}
${KEY}
형식으로 사용합니다._
)만 사용할 수 있습니다."name"
, (X) "${name}"
템플릿 도구에서 [메시지 본문]에 아래와 같이 사용자 인자를 사용해 템플릿을 구성합니다.
${user_name}님, 주문하신 상품이 배송되었습니다!
주문번호: ${order_id}
메시지 발송 API 호출 시 아래와 같이 사용자 인자 값을 함께 전달합니다. 아래 예시는 사용자 정의 템플릿으로 나에게 메시지 발송 API 예시입니다.
curl -v -X POST "https://kapi.kakao.com/v2/api/talk/memo/send" \
-H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-d "template_id=12345" \
-d 'template_args={
"user_name": "홍길동",
"order_id": "A001-23948"
}'
사용자는 아래와 같은 메시지를 받을 수 있습니다.
홍길동님, 주문하신 상품이 배송되었습니다!
주문번호: A001-23948
아래 키(Argument key)는 웹페이지 스크랩을 위해 이미 할당되어 있어 사용자 인자 키로 사용할 수 없습니다. 스크랩 메시지를 참고합니다.
${SCRAP_IMAGE}
${SCRAP_IMAGE_WIDTH}
${SCRAP_IMAGE_HEIGHT}
${SCRAP_IMAGE_DURATION}
${SCRAP_TITLE}
${SCRAP_DESCRIPTION}
${SCRAP_HOST}
${SCRAP_REQUESTED_URL}
이미지, 버튼 정렬 등 구성 요소 설정 화면에서 [사용자 인자] 옵션을 제공하는 경우, 해당 옵션을 선택하여 사용할 수 있습니다.
${BUT}
이 제공됨${BUT}=0
(가로 정렬), ${BUT}=1
(세로 정렬)아래는 버튼 정렬을 세로로 변경하는 API 요청 예시입니다.
curl -v -X POST "https://kapi.kakao.com/v2/api/talk/memo/send" \
-H "Content-Type: application/x-www-form-urlencoded;charset=utf-8" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-d "template_id=12345" \
-d 'template_args={
"BUT": "1",
}'