카카오톡 채널 관리자

카카오톡 채널 관리자 API는 카카오톡 채널 관리자센터에서 타겟메시지 전송을 위해 유저 정보를 업로드 하는 기능을 제공합니다.

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

시작하기 전에

  • 카카오톡 채널 관리자 API는 앱이 인증 프로필과 연결된상 태에서만 호출 할 수 있습니다. 앱과 인증 프로필은 카카오싱크 신청 페이지에서 연결 할 수 있습니다.

공통사항

API 호출 시 공통적으로 다음과 같은 사항을 준수해야 합니다.

  • 서버에서 호출해야 합니다.
  • REST API 키 또는 어드민 키(Admin Key)를 사용해 호출할 수 있습니다.
  • 한번 정의된 스키마는 수정이 불가합니다.
  • 하나의 유저리스트 추가 요청으로 2000명의 유저 정보를 업로드 할 수 있습니다.
  • 추가하는 대상의 user_id는 앱과 연결된 유저의 ID와 카카오톡에 등록된 휴대폰 번호를 지원 합니다.

유저 파일 생성

카카오톡 채널 관리자센터에서 채널에 가입된 유저의 그룹을 생성하기 위한 고객파일을 생성합니다. 친구그룹을 생성하면 메시지 발송 시 특정 그룹에게만 메시지 발송이 가능합니다. 친구그룹 생성은 전화번호를 알고 있거나 1:1 대화 이력이 있는 친구에 한해 가능합니다.

[Request]

POST /v1/talkchannel/create/target_user_file HTTP/1.1
Host: kapi.kakao.com
Authorization: KakaoAK {app_key}
Content-Type: application/json

요청에 필요한 파라미터는 다음과 같습니다. 한번 정의된 스키마는 수정이 불가하니 참고하세요.

설명 필수 타입
channel_public_id 카카오톡 채널의 공개 아이디 Y String
schema 유저의 스키마 정의 (한번 정의된 스키마는 수정이 불가) 예)성별, 나이, 지역, 등급 등 해당 필터링 정보로 필터링 하여 발송 그룹을 생성 할 수 있음 Y JSON
file_name 관리할 파일의 이름 Y Stirng

데이터소스를 생성하는 예시

curl -v -X POST 'https://kapi.kakao.com/v1/talkchannel/create/target_user_file' \
    -H 'Authorization: KakaoAK kkkkkkkkkkkkkkkkkkkkkkkkkkkkkk' \
    -H 'Content-Type: application/json' \
    -d '{
      "channel_public_id": "_xcLqmC",
      "file_name": "vip고객리스트",
      "schema":{
        "name":"string",
        "age":"number",
        "sex":"string"
      }
    }
    '

[Response]

요청이 성공하면 응답 바디에 JSON 객체로 아래 값을 포함합니다.

설명 타입
file_id 생성된 파일 ID Integer

예를 들면,

HTTP/1.1 200 OK
Content-type: application/json;charset=UTF-8
{
  "file_id" : 437
}

유저 파일 조회

  • 카카오톡 채널의 고객파일에 업로드 된 파일의 정보를 조회합니다.

[Request]

GET /v1/talkchannel/target_user_file HTTP/1.1
Host: kapi.kakao.com
Authorization: KakaoAK {app_key}
Content-Type: application/json

요청에 필요한 파라미터는 다음과 같습니다.

설명 필수 타입
channel_public_id 카카오톡 채널의 공개 아이디 Y String

예시

curl -v -X GET 'https://kapi.kakao.com/v1/talkchannel/target_user_file?channel_public_id=_xcLqmC' \
    -H 'Authorization: KakaoAK kkkkkkkkkkkkkkkkkkkkkkkkkkkkkk'

[Response]

요청이 성공하면 응답 바디에 JSON 객체로 아래 값을 포함합니다.

설명 타입
file_id 파일 식별자 Integer
file_name 파일 이름 string
status 파일의 상태. using, deleting, failed 중 하나 String
update_at 파일이 업로드 된 시간 String
empty_slot 사용 가능한 슬롯 수 Integer
using_slot 사용 중인 슬롯 수 Integer

예시

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
  "results":[
    {
      "file_id":21211,
      "file_name": "vip유저",
      "status":"using",
      "update_at":"2019-02-03 13:22:33"
    },
    {
      "file_id":21212,
      "file_name": "vvip유저",
      "status":"deleting",
      "update_at":"2019-02-03 13:22:33"
    },
    {
      "file_id":21213,
      "file_name": "블랙유저",
      "status":"failed",
      "update_at":"2019-02-03 13:22:33"
    }
  ],
  "empty_slot":27,
  "using_slot":3
}

유저리스트 추가

업로드한 파일에 유저를 추가합니다.

[Request]

POST /v1/talkchannel/update/target_users HTTP/1.1
Host: kapi.kakao.com
Authorization: KakaoAK {app_key}
Content-Type: application/json

요청에 필요한 파라미터는 다음과 같습니다.

설명 필수 타입
file_id 파일 ID Y Integer
channel_public_id Y 카카오톡 채널의 공개 아이디 String
user_type 유저 아이디의 타입. app 이나 phone 중 하나의 값 Y String
users 추가하려고 하는 유저 리스트. id와 스키마에 대한 값을 포함 Y JSON Array

users

설명 필수 타입
id 유저 아이디 Y String
field 정의한 유저 스키마에 대한 값을 key, value 형태로 입력 Y JSON

유저를 추가하는 예시

curl -v -X POST 'https://kapi.kakao.com/v1/talkchannel/update/target_users' \
    -H 'Authorization: KakaoAK kkkkkkkkkkkkkkkkkkkkkkkkkkkkkk' \
    -H 'Content-Type: application/json' \
    -d '{
      "file_id": 437,
      "channel_public_id": "_xcLqmC",
      "user_type": "app",
      "users": [
      {
        "id" : "12345",
        "field" : {
          "name" : "kims",
          "age" : 29,
          "sex" : 1
        }
      },
      ...
      ]
    }'

[Response]

요청이 성공하면 Http Status가 200으로 오고 응답 바디는 없습니다.
예시

HTTP/1.1 200 OK
Content-Length: 0
Content-type: application/json;charset=UTF-8

유저리스트 삭제

  • 업로드 된 파일에서 유저를 삭제합니다.

[Request]

POST /v1/talkchannel/delete/target_users HTTP/1.1
Host: kapi.kakao.com
Authorization: KakaoAK {app_key}
Content-Type: application/json

요청에 필요한 파라미터는 다음과 같습니다.

설명 필수 타입
file_id 파일 식별자 Y Integer
channel_public_id 카카오톡 채널의 공개 아이디 Y String
user_type 유저 아이디의 타입. app 이나 phone 중 하나의 값 Y String
user_ids 삭제하려고 하는 유저 식별자 리스트 Y JSON String Array

예시

curl -v -X GET 'https://kapi.kakao.com/v1/talkchannel/delete/target_users' \
    -H 'Authorization: KakaoAK kkkkkkkkkkkkkkkkkkkkkkkkkkkkkk' \
    -H 'Content-Type: application/json' \
    -d '{
      "file_id" : 437,
      "channel_public_id" : "_xcLqmC",
      "user_type" : "app"
      "user_ids" : ["12345"]
    }'

[Response]

요청이 성공하면 Http Status가 200으로 오고 응답 바디는 없습니다.
예시

HTTP/1.1 200 OK
Content-Length: 0
Content-type: application/json;charset=UTF-8

Last Modified : 2019-10-30