카카오톡

카카오톡 API는 카카오톡 서비스에서 제공하는 API를 의미합니다. 카카오계정으로 로그인을 하는 앱에서 사용할 수 있고, 카카오계정에 연결한 카카오톡 사용자에 대해서만 사용할 수 있습니다.



현재 제공되는 카카오톡 API는 다음과 같습니다.

프로필 요청

카카오톡 프로필 요청은 사용자 중에서 카카오계정에 연결한 카카오톡 사용자에 한해 카카오톡 프로필 정보를 얻어 올 수 있는 기능입니다. 해당 기능을 사용하기 위해서는 성공적인 로그인 후에 얻을 수 있는 사용자 토큰이 필요합니다.

[Request]

GET /v1/api/talk/profile HTTP/1.1
Host: kapi.kakao.com
Authorization: Bearer {access_token}

사용자 토큰을 헤더에 담아 GET으로 요청합니다. 사용자 토큰과 함께 아래 파라미터의 값을 선택적으로 추가할 수 있습니다.

설명 필수 타입
secure_resource 이미지 URL을 https로 반환할지 여부. true/false X Boolean


예를 들면,

curl -v -X GET  https://kapi.kakao.com/v1/api/talk/profile \
  -H "Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

[Response]

응답 바디는 JSON 객체로 아래 값들을 포함합니다.

설명 타입
nickName 카카오톡 별명. String
profileImageURL 카카오톡 프로필 이미지 URL. 640px * 640px 크기 String
thumbnailURL 카카오톡 썸네일 프로필 이미지 URL. 110px * 110px 크기 String
countryISO 카카오톡의 국가코드 String

예를 들면,

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "nickName":"홍길동",
  "profileImageURL":"http://xxx.kakao.co.kr/.../aaa.jpg",
  "thumbnailURL":"http://xxx.kakao.co.kr/.../bbb.jpg",
  "countryISO":"KR"
}

나에게 보내기

카카오톡 나에게 보내기는 사용자 중에서 카카오계정에 연결한 카카오톡 사용자에 한해 카카오톡 나와의 챗팅방으로 메시지를 보낼 수 있는 기능입니다. 해당 기능을 사용하기 위해서는 성공적인 로그인 후에 얻을 수 있는 사용자 토큰이 필요합니다. 나에게 보내기는 메시지 템플릿 V2를 지원하고 있습니다.

카카오톡 나에게 보내기에서는 새로운 형태의 메시지 템플릿 V2를 이용하여 기존의 V1보다 훨씬 다양한 형태의 메시지를 전송할 수 있습니다.

  • 카카오톡 나에게 보내기에서는 널리 사용될 수 있는 기본적인 형태의 메시지 템플릿을 피드, 리스트, 위치, 스크랩으로 정의하고 파라미터만으로 간편하게 전송할 수 있는 인터페이스를 제공합니다.
  • Third Party 서비스에 최적화된 메시지 템플릿을 구성할 수 있는 메시지 템플릿 빌더를 제공합니다. 개발자 웹사이트의 [내 애플리케이션] - 앱 선택 - [설정] - [메시지 템플릿 v2] 메뉴로 들어가면 자신의 서비스에 특화된 메시지 템플릿을 손쉽게 작성할 수 있습니다.


카카오톡 나에게 보내기로 전송된 메시지를 확인하려면 사용자의 모바일 기기에 해당 버전의 메시지 템플릿을 지원하는 카카오톡이 설치되어 있어야 합니다. 최신 버전의 나에게 보내기를 지원하는 플랫폼 별 카카오톡 최소 버전은 다음과 같습니다.

  • Android: 6.0.0
  • iOS: 5.9.8

메시지 타입 소개

카카오톡링크는 미리 정의된 메시지 템플릿을 이용하여 메시지를 전송합니다. 카카오톡링크로 보낼 수 있는 메시지 템플릿 유형은 다음과 같습니다.

자세히 보고 싶은 메시지를 클릭하세요.

default_feed.png feed.png

default_list.png list.png

default_commerce.png commerce.png

default_location.png default_scrap.png

기본 템플릿 보내기

카카오톡 나에게 보내기에서는 가장 많이 쓰이는 메시지 템플릿 형태를 기본 템플릿 으로 정의하고 별도의 템플릿 생성 없이 파라미터 구성만으로 간편하게 피드, 리스트, 위치, 커머스 메시지 템플릿을 전송할 수 있습니다.

피드 템플릿 보내기
  1. 이미지 영역: 최대 1장 표시 / 800px * 800px이상 (권장사항)
  2. 제목/설명 영역: 최대 4줄 표시 (제목, 설명 각각 2줄 표시)
  3. 소셜 영역: 최대 3개 표시 (순서: 좋아요 > 댓글 > 공유 > 조회 > 구독)
  4. 버튼 영역: 최대 2개 표시, 버튼명 8자 이하 권장

default_feed_spec.png

기본 템플릿으로 제공되는 피드 템플릿은 하나의 콘텐츠와 하나의 기본 버튼을 가집니다. 소셜 정보를 추가할 수 있으며 임의의 버튼을 설정할 수도 있습니다.

여러 장의 이미지, 프로필 정보 등 보다 확장된 형태의 피드 템플릿은 커스텀 템플릿을 이용하여 보내실 수 있습니다.

기본 템플릿으로 제공되는 피드 템플릿은 하나의 콘텐츠와 소셜 정보, 최대 두 개의 버튼을 가질 수 있습니다.

[Request]

POST /v2/api/talk/memo/default/send HTTP/1.1
Host: kapi.kakao.com
Authorization: Bearer {access_token}

사용자 토큰을 헤더에, 각 템플릿에 맞는 파라미터를 바디에 채워 POST로 요청하면, 나만의 챗팅방에 기본 템플릿에 파라미터가 채워진 메시지가 전송됩니다.

설명 필수 타입
template_object feed 오브젝트 O JSON feed 오브젝트

feed 오브젝트
설명 필수 타입
object_type 템플릿 종류. "feed" 고정값 O String
content 메시지의 메인 콘텐츠 정보 O content 오브젝트
social 콘텐츠에 대한 소셜 정보 X social 오브젝트
button_title 기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 X String
buttons 버튼 목록. 버튼 타이틀과 링크를 변경하고 싶을때, 버튼 두개를 사용하고 싶을때 사용.(최대 2개) X Array of button 오브젝트

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


예를 들면,

curl -v -X POST "https://kapi.kakao.com/v2/api/talk/memo/default/send" \
-H "Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-d 'template_object= {
  "object_type": "feed",
  "content": {
    "title": "디저트 사진",
    "description": "아메리카노, 빵, 케익",
    "image_url": "http://mud-kage.kakao.co.kr/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"
    }
  },
  "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"
      }
    }
  ]
}'

[Response]

응답 바디는 JSON 객체로 아래 값들을 포함합니다.

설명 타입
result_code 전송 성공 : 0 Integer

예를 들면,

HTTP/1.1 200 OK
{
  "result_code":0
}

리스트 템플릿 보내기
  1. 헤더 영역
  2. 아이템 리스트 영역: 최대 3개 표시
  3. 제목/설명 영역: 최대 3줄 표시 (제목 2줄, 설명 1줄 표시)
  4. 이미지 영역: 400px * 400px (권장사항)
  5. 버튼 영역: 최대 2개 표시, 버튼명 8자 이하 권장

default_list_spec.png

리스트 템플릿은 메시지 상단에 노출되는 헤더 타이틀과, 콘텐츠 목록, 버튼 등으로 구성됩니다. 헤더와 콘텐츠 각각의 링크를 가질 수 있습니다. 피드 템플릿과 마찬가지로 하나의 기본 버튼을 가지며 임의의 버튼을 설정할 수 있습니다.

3개 이상의 콘텐츠 등 보다 확장된 형태의 리스트 템플릿은 커스텀 템플릿을 이용하여 보내실 수 있습니다.

[Request]

POST /v2/api/talk/memo/default/send HTTP/1.1
Host: kapi.kakao.com
Authorization: Bearer {access_token}

사용자 토큰을 헤더에, 각 템플릿에 맞는 파라미터를 바디에 채워 POST로 요청하면, 나만의 챗팅방에 기본 템플릿에 파라미터가 채워진 메시지가 전송됩니다.

설명 필수 타입
template_object list 오브젝트 O JSON list 오브젝트

list 오브젝트
설명 필수 타입
object_type 템플릿 종류. "list" 고정값 O String
header_title 리스트 상단에 노출되는 메인 타이틀. 최대 200자 O String
header_link 헤더 타이틀 내용에 해당하는 링크 정보 O link 오브젝트
contents 리스트에 노출되는 콘텐츠 목록. 2개 이상 필수. 최대 3개 O Array of content 오브젝트
button_title 기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 X String
buttons 버튼 목록. 버튼 타이틀과 링크를 변경하고 싶을때, 버튼 두개를 사용하고 싶을때 사용.(최대 2개) X Array of button 오브젝트

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


예를 들면,

curl -v -X POST "https://kapi.kakao.com/v2/api/talk/memo/default/send" \
-H "Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-d '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": "http://mud-kage.kakao.co.kr/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": "http://mud-kage.kakao.co.kr/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": "http://mud-kage.kakao.co.kr/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"
      }
    }
  ]
}'

[Response]

응답 바디는 JSON 객체로 아래 값들을 포함합니다.

설명 타입
result_code 전송 성공 : 0 Integer

예를 들면,

HTTP/1.1 200 OK
{
  "result_code":0
}

위치 템플릿 보내기
  1. 이미지 영역: 최대 1장 표시 / 800px * 800px이상 (권장사항)
  2. 제목/설명 영역: 최대 4줄 표시 (제목, 설명 각각 2줄 표시)
  3. 소셜 영역: 최대 3개 표시 (순서: 좋아요 > 댓글 > 공유 > 조회 > 구독)
  4. 버튼 영역: 최대 2개 표시, 버튼명 8자 이하 권장

kakao_link_default_location.png

위치 템플릿은 지도 표시에 사용되는 주소 정보와 해당 위치를 설명할 수 있는 콘텐츠 오브젝트로 구성됩니다. 왼쪽 하단에 기본 버튼, 오른쪽 하단에 지도를 보여주기 위한 "위치 보기" 버튼이 추가됩니다. "위치 보기" 버튼을 클릭하면 카카오톡 채팅방 내에서 바로 지도 화면으로 전환하여 해당 주소의 위치를 확인할 수 있습니다.

[Request]

POST /v2/api/talk/memo/default/send HTTP/1.1
Host: kapi.kakao.com
Authorization: Bearer {access_token}

사용자 토큰을 헤더에, 각 템플릿에 맞는 파라미터를 바디에 채워 POST로 요청하면, 나만의 챗팅방에 기본 템플릿에 파라미터가 채워진 메시지가 전송됩니다.

설명 필수 타입
template_object location 오브젝트 O JSON location 오브젝트

location 오브젝트
설명 필수 타입
object_type 템플릿 종류. "location" 고정값 O String
address 공유할 위치의 주소
예) 경기 성남시 분당구 판교역로 235
O String
address_title 카카오톡 내의 지도 뷰에서 사용되는 타이틀
예) 카카오판교오피스
X String
content 위치에 대해 설명하는 콘텐츠 정보 O content 오브젝트
social 부가적인 소셜 정보 X social 오브젝트
button_title 기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 X String
buttons 버튼 목록. 기본 버튼의 타이틀 외에 링크도 변경하고 싶을 때 설정. (최대 1개, 오른쪽 "위치 보기" 버튼은 고정) X Array of button 오브젝트

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


예를 들면,

curl -v -X POST "https://kapi.kakao.com/v2/api/talk/memo/default/send" \
-H "Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-d '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": "http://dev.kakao.com",
      "mobile_web_url": "http://dev.kakao.com/mobile",
      "android_execution_params": "platform=android",
      "ios_execution_params": "platform=ios"
    }
  },
  "buttons": [
    {
      "title": "웹으로 보기",
      "link": {
        "web_url": "http://dev.kakao.com",
        "mobile_web_url": "http://dev.kakao.com/mobile"
      }
    }
  ],
  "address": "경기 성남시 분당구 판교역로 235 에이치스퀘어 N동 7층",
  "address_title": "카카오 판교오피스"
}'

[Response]

응답 바디는 JSON 객체로 아래 값들을 포함합니다.

설명 타입
result_code 전송 성공 : 0 Integer

예를 들면,

HTTP/1.1 200 OK
{
  "result_code":0
}

커머스 템플릿 보내기

  1. 이미지 영역: 최대 1장 표시 / 800px * 800px이상 (권장사항)
  2. 할인된 가격 영역
  3. 정상가격 영역
  4. 할인율 영역
  5. 제품명 영역: 최대 2줄 표시
  6. 버튼 영역: 최대 2개 표시, 버튼명 8자 이하 권장

default_commerce_spec.png

기본 템플릿으로 제공되는 커머스 템플릿은 하나의 콘텐츠, 커머스 콘텐츠와 하나의 기본 버튼을 가집니다.

여러 장의 이미지, 프로필 정보 등 보다 확장된 형태의 피드 템플릿은 커스텀 템플릿을 이용하여 보내실 수 있습니다.

기본 템플릿으로 제공되는 커머스 템플릿은 하나의 콘텐츠와 커머스 정보, 최대 두 개의 버튼을 가질 수 있습니다.

[Request]

POST /v2/api/talk/memo/default/send HTTP/1.1
Host: kapi.kakao.com
Authorization: Bearer {access_token}

사용자 토큰을 헤더에, 각 템플릿에 맞는 파라미터를 바디에 채워 POST로 요청하면, 나만의 챗팅방에 기본 템플릿에 파라미터가 채워진 메시지가 전송됩니다.

설명 필수 타입
template_object commerce 오브젝트 O JSON commerce 오브젝트

commerce 오브젝트
설명 필수 타입
object_type 템플릿 종류. "commerce" 고정값 O String
content 메시지의 메인 콘텐츠 정보. description 사용할 수 없음 O content 오브젝트
commerce 상품에 대한 가격 정보 O commerce 상세 오브젝트
button_title 기본 버튼 타이틀("자세히 보기")을 변경하고 싶을 때 설정 X String
buttons 버튼 목록. 버튼 타이틀과 링크를 변경하고 싶을때, 버튼 두개를 사용하고 싶을때 사용.(최대 2개) X Array of button 오브젝트

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


예를 들면,

curl -v -X POST "https://kapi.kakao.com/v2/api/talk/memo/default/send" \
-H "Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-d 'template_object= {
  "object_type": "commerce",
  "content": {
    "title": "Ivory long dress (4 Color)",
    "image_url": "http://mud-kage.kakao.co.kr/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"
      }
    }
  ]
}'

[Response]

응답 바디는 JSON 객체로 아래 값들을 포함합니다.

설명 타입
result_code 전송 성공 : 0 Integer

예를 들면,

HTTP/1.1 200 OK
{
  "result_code":0
}

content 오브젝트

콘텐츠의 내용을 담고 있는 오브젝트입니다.

설명 필수 타입
title 콘텐츠의 타이틀 O String
image_url 콘텐츠의 이미지 URL O String
image_width 콘텐츠의 이미지 너비 (단위: 픽셀) X Int
image_height 콘텐츠의 이미지 높이 (단위: 픽셀) X Int
description 콘텐츠의 상세 설명. title과 합쳐서 최대 4줄 표시. X String
link 콘텐츠 클릭 시 이동할 링크 정보 O link 오브젝트

메시지 템플릿 이미지 요구사항

  • RFC2396, RFC1034, RFC1123를 준수하지 않는 이미지 URL은 이미지가 보이지 않습니다.
  • 이미지의 크기는 너비 200픽셀 이상, 높이 200픽셀 이상이어야 합니다.
  • 2MB를 초과할 수 없습니다.

메시지에서 콘텐츠 영역이나 버튼 클릭 시에 이동되는 링크 정보 오브젝트입니다. 클릭시 이동하는 URL을 나타내기 때문에 넷 중 하나는 필수로 존재해야 합니다. 각 플랫폼별 링크 정보가 존재하지 않으면, 해당 플랫폼 카카오톡에서는 개발자 싸이트에 등록된 대표 정보가 이용되거나, 등록된 정보도 없으면, 버튼이 보이지 않거나 클릭시 이동하지 않습니다.

링크 실행 우선순위는 xxxExecutionParams > mobileWebURL > webURL 입니다.

설명 필수 타입
web_url PC버전 카카오톡에서 사용하는 웹 링크 URL. 도메인 부분은 개발자 사이트에 등록된 도메인과 일치 조건부 O String
mobile_web_url 모바일 카카오톡에서 사용하는 웹 링크 URL. 도메인 부분은 개발자 사이트에 등록된 도메인과 일치 조건부 O String
android_execution_params 안드로이드 카카오톡에서 사용하는 앱 링크 URL에 사용될 파라미터. 해당 값이 없을 경우 mobile_web_url 이용 조건부 O String
ios_execution_params iOS 카카오톡에서 사용하는 앱 링크 URL에 사용될 파라미터. 해당 값이 없을 경우 mobile_web_url 이용 조건부 O String

social 오브젝트

좋아요 수, 댓글 수 등의 소셜 정보를 표현하기 위해 사용되는 오브젝트입니다.

5개의 속성 중 최대 3개만 표시해 줍니다. 우선순위는 Like > Comment > Shared > View > Subscriber 입니다.

설명 필수 타입
like_count 콘텐츠의 좋아요 수 X Int
comment_count 콘텐츠의 댓글 수 X Int
shared_count 콘텐츠의 공유 수
view_count 콘텐츠의 조회 수 X Int
subscriber_count 콘텐츠의 구독 수 X Int

commerce 상세 오브젝트

가격 정보를 표현하기 위해 사용되는 오브젝트입니다.

설명 필수 타입
regular_price 정상가격 O Int
discount_price 할인된 가격 X Int
discount_rate 할인률 X Int

button 오브젝트

메시지 하단에 추가되는 버튼 오브젝트입니다.

설명 필수 타입
title 버튼의 타이틀 O String
link 버튼 클릭 시 이동할 링크 정보 O link 오브젝트

스크랩 템플릿 보내기
  1. 이미지 영역: 최대 1장 표시 / 800px * 800px이상 (권장사항)
  2. 제목/설명 영역: 최대 4줄 표시 (제목, 설명 각각 2줄 표시)
  3. 버튼 영역: 최대 1개 표시, 버튼명 8자 이하 권장

A. og:image / B. video:duration, music:duration / C. og:title, og:description / D. og:site_name

default_scrap_spec.png

웹 사이트 콘텐츠를 해당 웹 페이지의 Open Graph 정보를 이용하여 별도의 템플릿 생성 작업 없이 URL만으로 메시지를 간편하게 전달합니다.

스크랩하려는 웹 사이트의 도메인은 반드시 내 애플리케이션 설정에 등록되어야 합니다.
도메인은 개발자 웹사이트의 [내 애플리케이션] - 앱 선택 - [설정] - [일반] 메뉴에서 등록할 수 있습니다.

[Request]

POST /v2/api/talk/memo/scrap/send HTTP/1.1
Host: kapi.kakao.com
Authorization: Bearer {access_token}

사용자 토큰을 헤더에, 스크랩할 웹 URL를 바디에 채워 POST로 요청하면, 나만의 챗팅방에 스크랩 결과가 예쁜 말풍선 메시지로 전송됩니다.

설명 필수 타입
request_url 스크랩할 타겟 URL. 도메인 부분은 개발자 사이트에 등록된 도메인과 일치 O String
template_id 기본 스크랩 템플릿 외에 [메시지 템플릿 v2] 메뉴를 통해 직접 제작한 스크랩용으로 변경하고 싶을 때 사용. 메시지 템플릿 id X Long
template_args template_id를 지정한 경우에, 해당 템플릿에 필요한 값이 있다면 key:value 형식으로 주어야함. 스크랩 결과를 overwrite는 할 수 없음 X JSONObject


예를 들면,

curl -v -X POST "https://kapi.kakao.com/v2/api/talk/memo/scrap/send" \
-H "Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-d 'request_url=https://developers.kakao.com'

[Response]

응답 바디는 JSON 객체로 아래 값들을 포함합니다.

설명 타입
result_code 전송 성공 : 0 Integer

예를 들면,

HTTP/1.1 200 OK
{
  "result_code":0
}

자신의 서비스에 보다 특화된 형태의 스크랩 메시지를 전송하려면 스크랩용 커스텀 템플릿을 이용해야 합니다.

스크랩 템플릿에서 사용되는 커스텀 템플릿은 개발자 웹사이트의 [내 애플리케이션] - 앱 선택 - [설정] - [메시지 템플릿 v2] 메뉴를 통해 생성할 수 있습니다. 기본적으로 템플릿을 생성하고 보내는 방식은 커스텀 템플릿 보내기와 동일하지만 생성된 템플릿에 아래 표에 나와있는 파라미터(Template Arguments)가 입력되어 있어야 합니다. 해당 키가 포함된 메시지 템플릿 구성 요소에 스크랩된 웹사이트 정보가 서버에서 자동으로 입력됩니다.

Argument 키 설명
SCRAP_REQUEST_URL 스크랩 요청 URL
SCRAP_HOST 요청 URL의 호스트
SCRAP_TITLE 요청 URL의 제목
SCRAP_DESCRIPTION 요청 URL의 설명
SCRAP_IMAGE og:image
SCRAP_IMAGE_WIDTH og:image의 width
SCRAP_IMAGE_HEIGHT og:image의 height
SCRAP_DURATION og:duration

예를 들어 메시지 템플릿 빌더를 이용하여 feed 템플릿을 만들고 이미지에 "${SCRAP_IMAGE}", 제목에 "${SCRAP_TITLE}", 설명에 "${SCRAP_DESCRIPTION}"를 입력하고 이 템플릿을 전송하면 웹 페이지의 해당 스크랩 정보가 각각 이미지, 제목, 설명 위치에 노출됩니다. 이 때 위 표에 있는 파라미터(Template Arguments)들은 서버에서 입력하므로 별도의 template_args 값이 필요하지 않습니다.

커스텀 템플릿 보내기

위에 소개된 템플릿으로 충분하지 않다면 메시지 템플릿 빌더를 사용하여 자신만의 메시지 템플릿을 자유롭게 만드실 수 있습니다.

FEED TYPE
  1. 이미지 영역: 최대 3장 표시 / 800px * 800px이상 (권장사항)
  2. 프로필: 프로필 이미지와 프로필 명을 표현하는 영역
  3. 제목/설명 영역: 최대 4줄 표시 (제목, 설명 각각 2줄 표시)
  4. 소셜 영역: 최대 3개 표시 (순서: 좋아요 > 댓글 > 공유 > 조회 > 구독)
  5. 버튼 영역: 최대 2개 표시, 버튼명 8자 이하 권장
  6. 서비스/출처 정보 영역: 서비스명, 출처를 표현하는 영역

feed_spec.png

LIST TYPE
  1. 헤더 영역: 배경 이미지 설정 가능
  2. 아이템 리스트 영역: 최대 5개 표시
  3. 제목/설명 영역: 최대 3줄 표시 (제목 2줄, 설명 1줄 표시)
  4. 이미지 영역: 재생 아이콘/시간 표시 가능 / 400px * 400px (권장사항)
  5. 버튼 영역: 최대 2개 표시, 버튼명 8자 이하 권장
  6. 서비스/출처 정보 영역: 서비스명, 출처를 표현하는 영역

list_spec.png

COMMERCE TYPE
  1. 이미지 영역: 최대 3장 표시 / 800px * 800px이상 (권장사항)
  2. 프로필: 프로필 이미지와 프로필 명을 표현하는 영역
  3. 할인된 가격 영역
  4. 정상가격 영역
  5. 할인율 영역
  6. 제품명 영역: 최대 2줄 표시
  7. 버튼 영역: 최대 2개 표시, 버튼명 8자 이하 권장

commerce_spec.png

커스텀 템플릿은 개발자 웹사이트의 [내 애플리케이션] - 앱 선택 - [설정] - [메시지 템플릿 v2] 메뉴를 통해 생성할 수 있습니다. 메시지 템플릿 생성하기

커스텀 템플릿 내에 입력되는 URL이나 텍스트 값들은 메시지를 전송하는 시점에 동적으로 설정할 수 있습니다. 변경되기 원하는 값에 자신만의 파라미터를 정의하여 입력해두고 전송하는 시점에 해당 파라미터의 을 전달하면 지정된 값이 메시지에 노출됩니다. 예를 들면, 피드 템플릿의 콘텐츠 설명을 동적으로 변경하고 싶을 경우 설명에 "${MY_DESCRIPTION}"이라고 입력한 후 "{"MY_DESCRIPTION":"변경된 설명문구입니다."}" 형태로 파라미터를 전달합니다.

[Request]

POST /v2/api/talk/memo/send HTTP/1.1
Host: kapi.kakao.com
Authorization: Bearer {access_token}

사용자 토큰을 헤더에, 템플릿 id와 해당 템플릿에 argument가 존재한다면 해당값을 바디에 채워 POST로 요청하면, 나만의 챗팅방에 메시지가 전송됩니다.

설명 필수 타입
template_id [메시지 템플릿 v2] 메뉴를 통해 생성한 메시지 템플릿 id O Integer
args 메시지 템플릿에 정의한 arg의 key:value 형식. JSONObject. X JSON


예를 들면,

curl -v -X POST "https://kapi.kakao.com/v2/api/talk/memo/send" \
-H "Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-d 'template_id=123456' \
--data-urlencode 'args={"ARTICLE_ID":123}'

[Response]

응답 바디는 JSON 객체로 아래 값들을 포함합니다.

설명 타입
result_code 전송 성공 : 0 Integer

예를 들면,

HTTP/1.1 200 OK
{
  "result_code":0
}

Last Modified : 2017-07-31