본문 바로가기메인 메뉴 바로가기사이드 메뉴 바로가기

kakao developers

관련사이트

사이드 메뉴

플랫폼 API

API 제공

전용 API

어드민 API

이 문서는 기존 버전의 카카오톡 채널 REST API 사용 방법을 안내합니다.

메서드URL인증 방식
GET / POST카카오
http://kapi.kakao.com/v1/internal/talk/channels
공동체
https://kapi.kakao.com/v1/internal/talk/channels
외부
https://kapi.kakao.com/v1/api/talk/channels
액세스 토큰
서비스 앱 어드민 키
위임
* 카카오페이의 경우, 별도 동의항목 사용(금융데이터 분석 및 활용을 위한 데이터 제공)
카카오톡 채널 웹훅

사용자가 서비스와 연결된 카카오톡 채널을 추가 또는 차단했을 때 알림을 받으려면 카카오톡 채널 웹훅을 사용합니다.

사용자와 카카오톡 채널이 친구 관계인지 확인합니다. 이 API를 사용해 사용자와 카카오톡 채널이 친구가 아닐 때 친구 추가 버튼을 노출하거나, 이미 친구일 때 친구 요청을 하지 않도록 할 수 있습니다.

이 API로 한 명의 사용자와 여러 개의 카카오톡 채널 사이의 관계를 확인할 수 있습니다. 조회 대상인 사용자는 요청 대상 앱에 연결 또는 연결 대기 상태여야 하고, 카카오톡 채널은 앱에 연결 또는 수동 등록된 상태여야 합니다.

헤더에 원하는 인증 정보를 담아 GET 또는 POST로 요청하고, 성공 시 사용자와 카카오톡 채널의 관계 정보를 받습니다.

대상 카카오톡 채널을 직접 지정하려면 사용자와의 친구 관계를 확인할 카카오톡 채널의 ID 목록(channel_talk_ids)과 카카오톡 채널 프로필 ID 목록(channel_public_ids)을 파라미터로 전달해야 합니다. 단, channel_talk_ids은 내부 API 요청 시에만 사용 가능합니다.

요청 시 channel_talk_idschannel_public_ids 값을 전달하지 않으면 앱에 연결 또는 수동 등록된 모든 카카오톡 채널을 대상으로 관계를 확인합니다.

사용자의 카카오계정 ID(account_id)와 카카오톡 채널의 카카오톡 회원번호(channel_talk_id)는 앱에 응답 권한이 있는 경우 제공합니다.

이름설명필수
AuthorizationAuthorization: Bearer ${ACCESS_TOKEN}
인증 방식, 액세스 토큰으로 인증 요청
O
  • channel_talk_ids는 내부 API 요청 시에만 사용 가능합니다.
이름타입설명필수
channel_talk_idsLong[]사용자와의 친구 관계를 확인할 카카오톡 채널 ID 목록X
channel_public_idsString[]사용자와의 친구 관계를 확인할 카카오톡 채널의 프로필 ID 목록

참고: 카카오톡 채널 프로필 ID 확인 방법
X
  • 내부 API 요청 시에만 사용 가능합니다.
이름설명필수
AuthorizationAuthorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}
인증 방식, 서비스 앱 어드민 키로 인증 요청
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
이름타입설명필수
target_idString카카오톡 채널과의 관계를 확인할 사용자 IDO
target_id_typeStringtarget_id의 타입, 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id: 카카오톡 회원번호
O
channel_talk_idsLong[]사용자와의 친구 관계를 확인할 카카오톡 채널 ID 목록X
channel_public_idsString[]사용자와의 친구 관계를 확인할 카카오톡 채널의 프로필 ID 목록

참고: 카카오톡 채널 프로필 ID 확인 방법
X
  • 내부 API 요청 시에만 사용 가능합니다.
이름설명필수
AuthorizationAuthorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}
인증 방식, 플랫폼 앱 어드민 키로 인증 요청
서비스 앱의 권한을 플랫폼 앱이 위임받아 요청하는 방식으로 내부 API 요청 시 사용 가능
서비스 구분을 위해 서비스 앱의 앱 ID, 앱 키, 토큰 중 하나 파라미터로 전달 필요
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
  • 요청 대상 사용자를 어떤 파라미터로 지정하는지에 따라 필수 파라미터 구성이 달라집니다.
    • 서비스 앱 키: target_app_key, target_id, target_id_type
    • 서비스 앱 ID: target_app_id, target_id, target_id_type
    • 액세스 토큰: target_access_token
이름타입설명필수
target_app_keyString요청 대상 사용자와 연결된 요청 앱의 키O(Optional)
target_app_idString요청 대상 사용자와 연결된 요청 앱의 IDO(Optional)
target_access_tokenString카카오톡 채널과의 관계를 확인할 사용자의 액세스 토큰 값O(Optional)
target_idString카카오톡 채널과의 관계를 확인할 사용자 IDO(Optional)
target_id_typeStringtarget_id의 타입, 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id: 카카오톡 회원번호
O(Optional)
channel_talk_idsLong[]사용자와의 친구 관계를 확인할 카카오톡 채널 ID 목록X
channel_public_idsString[]사용자와의 친구 관계를 확인할 카카오톡 채널의 프로필 ID 목록

참고: 카카오톡 채널 프로필 ID 확인 방법
X
이름타입설명필수
user_idLong사용자 IDX
account_idLong카카오계정 ID

제공 조건: 카카오계정 ID(account_id) 응답 권한 보유, 내부 API 요청
X
channelsChannelRelation[]각 카카오톡 채널과 사용자의 관계 정보X
이름타입설명필수
channel_talk_idLong카카오톡 채널 ID

제공 조건: 카카오톡 회원번호(talk_id) 응답 권한 보유, 내부 API 요청
X
channel_uuidString카카오톡 채널의 카카오톡 검색용 IDO
channel_public_idString카카오톡 채널 프로필 IDO
relationString사용자와 카카오톡 채널의 관계, 아래 중 하나
  • ADDED: 친구
  • BLOCKED: 차단
  • NONE: 관계 없음
O
created_atDatetime카카오톡 채널 추가 시간, UTC*
카카오톡 채널이 추가(ADDED) 상태인 경우만 포함
X
updated_atDatetime카카오톡 채널 상태 변경 시간, UTC*
카카오톡 채널이 추가(ADDED) 또는 차단(BLOCKED)된 상태일 경우만 포함
X
* UTC: 한국 시간(KST)과 9시간 차이, RFC3339: Date and Time on the Internet 참고
  • 파라미터
    • 카카오톡 채널 ID 목록(channel_talk_ids)
    • 카카오톡 채널 프로필 ID 목록(channel_public_ids)
curl -v -G GET "http://kapi.kakao.com/v1/internal/talk/channels" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-d "channel_talk_ids=[12345,23445,44552]" \
-d 'channel_public_ids=["_frxjem","_xnrxjem","_Brxjem"]'
  • 파라미터
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type)
    • 카카오톡 채널 ID 목록(channel_talk_ids)
    • 카카오톡 채널 프로필 ID 목록(channel_public_ids)
curl -v -G GET "http://kapi.kakao.com/v1/internal/talk/channels" \
-H "Authorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}" \
-d "target_id=1376016924426684995" \
-d "target_id_type=user_id" \
-d "channel_talk_ids=[12345,23445,44552]" \
-d 'channel_public_ids=["_frxjem","_xnrxjem","_Brxjem"]'
  • 파라미터
    • 서비스 앱 키(target_app_key)
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type): 회원번호(user_id)
    • 카카오톡 채널 ID 목록(channel_talk_ids)
    • 카카오톡 채널 프로필 ID 목록(channel_public_ids)
curl -v -G GET "http://kapi.kakao.com/v1/internal/talk/channels" \
-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \
-d "target_app_key=${SERVICE_APP_KEY}" \
-d "target_id=1376016924426684995" \
-d "target_id_type=user_id" \
-d "channel_talk_ids=[12345,23445,44552]" \
-d 'channel_public_ids=["_frxjem","_xnrxjem","_Brxjem"]'
  • 파라미터
    • 서비스 앱 ID(target_app_id)
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type): 회원번호(user_id)
    • 카카오톡 채널 ID 목록(channel_talk_ids)
    • 카카오톡 채널 프로필 ID 목록(channel_public_ids)
curl -v -G GET "http://kapi.kakao.com/v1/internal/talk/channels" \
-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \
-d "target_app_id=213685" \
-d "target_id=1376016924426684995" \
-d "target_id_type=user_id" \
-d "channel_talk_ids=[12345,23445,44552]" \
-d 'channel_public_ids=["_frxjem","_xnrxjem","_Brxjem"]'
  • 파라미터
    • 액세스 토큰(target_access_token)
    • 카카오톡 채널 ID 목록(channel_talk_ids)
    • 카카오톡 채널 프로필 ID 목록(channel_public_ids)
curl -v -G GET "http://kapi.kakao.com/v1/internal/talk/channels" \
-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \
-d "target_access_token=${ACCESS_TOKEN}" \
-d "channel_talk_ids=[12345,23445,44552]" \
-d 'channel_public_ids=["_frxjem","_xnrxjem","_Brxjem"]'
// HTTP/1.1 200 OK
{
"user_id": 1376016924426879191,
"account_id": 81820, // 카카오계정 ID 응답 권한 필요
"channels": [
{
"channel_talk_id": 12345, // 카카오톡 회원번호 응답 권한 필요
"channel_uuid": "@채널A",
"channel_public_id": "_frxjem",
"relation": "ADDED", // ADDED, BLOCKED, NONE 중 하나
"created_at": "2018-02-18T03:17:05Z", // ADDED 상태일 때만 존재
"updated_at": "2018-03-14T05:25:01Z" // ADDED, BLOCKED 상태일 때만 존재
},
{
"channel_talk_id": 23445,
"channel_uuid": "@채널B",
"channel_public_id": "_xnrxjem",
"relation": "ADDED",
"created_at": "2018-02-18T03:15:05Z",
"updated_at": "2018-02-20T05:27:07Z"
},
{
"channel_talk_id": 44552,
"channel_uuid": "@채널C",
"channel_public_id": "_Brxjem",
"relation": "NONE"
}
]
}
// HTTP/1.1 403 Forbidden
{
"msg": "[developers-sample] App disabled [plusfriends] scopes for [TALK_PLUSFRIENDS] API on developers.kakao.com. Enable it first.",
"code": -3
}
// HTTP/1.1 403 Forbidden
{
"msg": "insufficient scopes.",
"code": -402,
"api_type": "TALK_PLUSFRIENDS",
"required_scopes": ["plusfriends"],
"allowed_scopes": ["birthday", "talk_message", "profile", "shipping_address", "friends"]
}
메서드URL인증 방식
POST카카오
http://kapi.kakao.com/v1/internal/talk/channels/add
공동체
https://kapi.kakao.com/v1/internal/talk/channels/add
외부
https://kapi.kakao.com/v1/api/talk/channels/add
액세스 토큰
서비스 앱 어드민 키
위임
카카오톡 채널 친구 추가 문구 안내

카카오톡 채널 친구 추가 API로 카카오톡 채널을 사용자의 친구로 추가하려는 경우, 정보통신망법 제50조를 기반으로 하는 KISA 가이드라인에 따라 반드시 지정된 문구로 안내해야 합니다. (참고)

사용 가능한 문구는 아래와 같습니다:

  • 기본 문구: [카카오톡 채널 이름]의 광고와 마케팅 메시지를 카카오톡으로 받습니다.
  • 축약형:
    • [카카오톡 채널 이름]의 광고와 마케팅 메시지를 카카오톡으로 받기
    • [카카오톡 채널 이름]의 광고 메시지를 카카오톡으로 받기

특정 카카오톡 채널을 사용자의 친구로 추가합니다. 사용자가 해당 카카오톡 채널을 차단한 상태일 경우, 차단을 해제하고 친구 추가합니다.

대상 카카오톡 채널은 아래 조건을 만족해야 합니다.

헤더에 원하는 인증 정보를 담아 POST로 요청하고, 성공 시 사용자의 친구로 추가된 카카오톡 채널의 정보를 받습니다. 여러 개의 카카오톡 채널을 추가하려면 요청 시 추가할 카카오톡 채널의 ID 목록(channel_talk_ids)과 카카오톡 채널의 프로필 ID 목록(channel_public_ids)을 파라미터로 전달해야 합니다. channel_talk_ids은 내부 API 요청 시에만 사용 가능합니다.

요청 시 channel_talk_idschannel_public_ids 값을 전달하지 않으면 앱과 연결 또는 수동 등록된 카카오톡 채널이 친구로 추가됩니다. 단, 앱과 연결 또는 수동 등록된 카카오톡 채널이 여러 개일 경우, 에러가 발생하므로 채널이 여러 개일 경우에는 반드시 channel_talk_idschannel_public_ids 값을 전달해야 합니다. 여러 개의 카카오톡 채널을 추가 요청한 경우, 앱에 연결된 채널 목록을 확인해 모두 연결 또는 수동 등록되어 있는 카카오톡 채널인 경우에만 요청이 허용됩니다.

사용자의 카카오계정 ID(account_id)와 카카오톡 채널의 카카오톡 회원번호(channel_talk_id)는 앱에 응답 권한이 있는 경우 제공합니다.

이름설명필수
AuthorizationAuthorization: Bearer ${ACCESS_TOKEN}
인증 방식, 액세스 토큰으로 인증 요청
O
  • 여러 개의 카카오톡 채널을 추가 요청할 경우, channel_talk_idschannel_public_ids 파라미터는 필수 전달해야 합니다.
  • channel_talk_ids는 내부 API 요청 시에만 사용 가능합니다.
이름타입설명필수
channel_talk_idsLong[]사용자의 친구로 추가할 카카오톡 채널 ID 목록X
channel_public_idsString[]사용자의 친구로 추가할 카카오톡 채널의 프로필 ID 목록

참고: 카카오톡 채널 프로필 ID 확인 방법
X
이름설명필수
AuthorizationAuthorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}
인증 방식, 서비스 앱 어드민 키로 인증 요청
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
  • 여러 개의 카카오톡 채널을 추가 요청할 경우, channel_talk_idschannel_public_ids 파라미터는 필수 전달해야 합니다.
  • 이 인증 방식을 사용할 경우, 다른 서비스 앱을 대상으로 지정하는 channel_app_id 파라미터를 사용할 수 있습니다. 해당 파라미터 사용 시 요청을 보내는 앱과 서비스 앱에 권한이 필요합니다.
    • 요청을 보내는 앱: PLUS_FRIEND_APP_ID_CALLER
    • 요청 대상 카카오톡 채널과 연결 또는 수동 등록된 서비스 앱: PLUS_FRIEND_APP_ID_CALLEE
이름타입설명필수
target_idString카카오톡 채널을 친구로 추가할 사용자의 IDO
target_id_typeStringtarget_id의 타입, 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id: 카카오톡 회원번호
O
channel_talk_idsLong[]사용자의 친구로 추가할 카카오톡 채널 ID 목록X
channel_public_idsString[]사용자의 친구로 추가할 카카오톡 채널의 프로필 ID 목록

참고: 카카오톡 채널 프로필 ID 확인 방법
X
channel_app_idInteger사용자의 친구로 추가할 카카오톡 채널과 연결된 서비스 앱 IDX
  • 내부 API 요청 시에만 사용 가능합니다.
이름설명필수
AuthorizationAuthorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}
인증 방식, 플랫폼 앱 어드민 키로 인증 요청
서비스 앱의 권한을 플랫폼 앱이 위임받아 요청하는 방식으로 내부 API 요청 시 사용 가능
서비스 구분을 위해 서비스 앱의 앱 ID, 앱 키, 토큰 중 하나 파라미터로 전달 필요
O
Content-TypeContent-Type: application/x-www-form-urlencoded;charset=utf-8
요청 데이터 타입
O
  • 요청 대상 사용자를 어떤 파라미터로 지정하는지에 따라 필수 파라미터 구성이 달라집니다.
    • 서비스 앱 키: target_app_key, target_id, target_id_type
    • 서비스 앱 ID: target_app_id, target_id, target_id_type
    • 액세스 토큰: target_access_token
  • 여러 개의 카카오톡 채널을 추가 요청할 경우, channel_talk_idschannel_public_ids 파라미터는 필수 전달해야 합니다.
이름타입설명필수
target_app_keyString카카오톡 채널 추가를 요청하는 서비스 앱의 키O(Optional)
target_app_idString카카오톡 채널 추가를 요청하는 서비스 앱의 IDO(Optional)
target_access_tokenString카카오톡 채널을 친구로 추가할 사용자의 액세스 토큰O(Optional)
target_idString카카오톡 채널을 친구로 추가할 사용자의 IDO(Optional)
target_id_typeStringtarget_id의 타입, 아래 중 하나
  • user_id: 회원번호
  • account_id: 카카오계정 ID
  • talk_id: 카카오톡 회원번호
O(Optional)
channel_talk_idsLong[]사용자의 친구로 추가할 카카오톡 채널 ID 목록X
channel_public_idsString[]사용자의 친구로 추가할 카카오톡 채널의 프로필 ID 목록

참고: 카카오톡 채널 프로필 ID 확인 방법
X
이름타입설명필수
user_idLong사용자 IDX
account_idLong카카오계정 ID

제공 조건: 카카오계정 ID(account_id) 응답 권한 보유, 내부 API 요청
X
channelsChannel[]친구로 추가한 카카오톡 채널 정보O
이름타입설명필수
successBooleanDeprecated, 친구 추가 성공 여부O
channel_uuidString카카오톡 채널의 카카오톡 검색용 IDO
channel_talk_idLong카카오톡 채널 ID

제공 조건: 카카오톡 회원번호(talk_id) 응답 권한 보유, 내부 API 요청
X
channel_public_idString사용자의 친구로 추가된 카카오톡 채널의 프로필 ID

참고: 카카오톡 채널 프로필 ID 확인 방법
O
result_msgString친구 추가 성공 또는 실패 원인을 담은 메시지O
  • 파라미터
    • 사용자의 친구로 추가할 카카오톡 채널 ID 목록(channel_talk_ids)
    • 카카오톡 채널 프로필 ID 목록(channel_public_ids)
curl -v -X POST "http://kapi.kakao.com/v1/internal/talk/channels/add" \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-d "channel_talk_ids=[12345,23456]" \
-d 'channel_public_ids=["_frxjem","_xnrxjem"]'
  • 파라미터
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type): 회원번호(user_id)
    • 사용자의 친구로 추가할 카카오톡 채널 ID 목록(channel_talk_ids)
    • 카카오톡 채널 프로필 ID 목록(channel_public_ids)
curl -v -X POST "http://kapi.kakao.com/v1/internal/talk/channels/add" \
-H "Authorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}" \
-d "target_id=1376016924426684995" \
-d "target_id_type=user_id" \
-d "channel_talk_ids=[12345,23456]" \
-d 'channel_public_ids=["_frxjem","_xnrxjem"]'
  • 파라미터
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type): 회원번호(user_id)
    • 카카오톡 채널과 연결된 앱 ID(channel_app_id)
curl -v -X POST "http://kapi.kakao.com/v1/internal/talk/channels/add" \
-H "Authorization: KakaoAK ${SERVICE_APP_ADMIN_KEY}" \
-d "target_id=1376016924428915177" \
-d "target_id_type=user_id" \
-d "channel_app_id=829616"
  • 파라미터
    • 서비스 앱 키(target_app_key)
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type): 회원번호(user_id)
    • 사용자의 친구로 추가할 카카오톡 채널 ID 목록(channel_talk_ids)
    • 카카오톡 채널 프로필 ID 목록(channel_public_ids)
curl -v -X POST "http://kapi.kakao.com/v1/internal/talk/channels/add" \
-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \
-d "target_app_key=${SERVICE_APP_KEY}" \
-d "target_id=1376016924426684995" \
-d "target_id_type=user_id" \
-d "channel_talk_ids=[12345,23456]" \
-d 'channel_public_ids=["_frxjem","_xnrxjem"]'
  • 파라미터
    • 서비스 앱 ID(target_app_id)
    • 사용자 ID(target_id)
    • 사용자 ID 타입(target_id_type): 회원번호(user_id)
    • 사용자의 친구로 추가할 카카오톡 채널 ID 목록(channel_talk_ids)
    • 카카오톡 채널 프로필 ID 목록(channel_public_ids)
curl -v -X POST "http://kapi.kakao.com/v1/internal/talk/channels/add" \
-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \
-d "target_app_id=213685" \
-d "target_id=1376016924426684995" \
-d "target_id_type=user_id" \
-d "channel_talk_ids=[12345,23456]" \
-d 'channel_public_ids=["_frxjem","_xnrxjem"]'
  • 파라미터
    • 액세스 토큰(target_access_token)
    • 사용자의 친구로 추가할 카카오톡 채널 ID 목록(channel_talk_ids)
    • 카카오톡 채널 프로필 ID 목록(channel_public_ids)
curl -v -X POST "http://kapi.kakao.com/v1/internal/talk/channels/add" \
-H "Authorization: KakaoAK ${DELEGATOR_APP_ADMIN_KEY}" \
-d "target_access_token=${ACCESS_TOKEN}" \
-d "channel_talk_ids=[12345,23456]" \
-d 'channel_public_ids=["_frxjem","_xnrxjem"]'
// HTTP/1.1 200 OK
{
"user_id": 1376016924426879191,
"account_id": 81820, // 카카오계정 ID 응답 권한 필요
"channels": [
{
"success": true, // deprecated
"channel_uuid": "@채널A",
"channel_public_id": "_frxjem",
"channel_talk_id": 12345, // 카카오톡 회원번호 응답 권한 필요
"result_msg": "SUCCESS"
},
{
"success": true, // deprecated
"channel_uuid": "@채널B",
"channel_talk_id": 23445,
"channel_public_id": "_xnrxjem",
"result_msg": "SUCCESS"
}
]
}
// HTTP/1.1 400 Bad Request
{
"code": -501,
"msg": "given account is not connected to any talk user."
}
// HTTP/1.1 401 Unauthorized
{
"code": -406,
"msg": "Unable to add to this channel. age verification is required."
}

도움이 되었나요?