카카오채널 고객파일

문의 사항에 따라 필요한 정보를 먼저 입력하시면 더 빠르게 대응해 드릴 수 있습니다.

  • 개발 과정에서 문제가 있을 경우
    앱 아이디(app ID): 371111
    호스팅 사: 테스트밸리(TestValley)
    서비스 URL : https://www.testvalley.kr/1
    문의사항 :
  • 고객파일을 업로드 하여 이용을 하려고 합니다.

보통 업로드 과정이 어떻게 되는지 알고싶습니다.

  1. 배치같은 것을 통해서 올리는지 or 고객이 로그인 할때마다 올리는지?
  2. 한번에 여러개 고객의 정보를 올리게 된다면, 해당고객의 동의는 어떻게 확인하는지?
    확인해주셔서 감사합니다.

안녕하세요!
아래 내용 답변 드립니다.

1.배치같은 것을 통해서 올리는지 or 고객이 로그인 할때마다 올리는지?
고객파일 업로드는 api 연동을 통해 자동 업로드를 하거나, 파일을 직접 수동으로 업로드 하실 수 있습니다.
아래 가이드를 참고 부탁드려요!

2.한번에 여러개 고객의 정보를 올리게 된다면, 해당고객의 동의는 어떻게 확인하는지?
고객파일 사용을 위하여 사용자의 마케팅 수신 동의 여부에 대한 확인이 필요하신가요?
아래 카카오톡 채널관계 확인하기를 통해 확인 하실 수 있습니다.

고맙습니다 :slight_smile:

API 업로드를 하려고 합니다.
이때 channel api를 통해서 하게된다면, accesstoken을 이용하기 때문에 고객이 로그인시 로그인한 고객만 업로드가 가능해집니다.
보통 어떤식으로 고객의 동의데이터를 관리하고 이를 업로드하여 사용하는지 문의드립니다.

@blqinc

고객 파일 업로드는 카카오 싱크로 가입한 고객들에 대해
소유하신 사이트에서 관리하시는 추가 정보를 업로드하고
그 정보를 기반으로 고객을 분류하고 타겟팅하여 맞춤 메시지 발송을 위한 사전 작업입니다.

추가 정보 ex) 최근 구매일, 구매 금액 등

절차로는 고객파일 등록 (생성)하고 사용자 추가를 합니다.

가이드를 보시면, 액세스 토큰을 이용해 API 를 호출하지 않고 Admin Key를 사용합니다.
즉, 로그인한 고객별로 API 호출하는 것이 아니라
관리자가 별도의 시스템을 구성해서 파일을 만들어 카카오 싱크로 가입한 고객들의 추가 정보를 업로드하는 것입니다.

실제 파일 등록은 카카오톡 채널에 생성 되고 채널 고객을 대상으로 메시지 발송하는 것이므로
채널 친구가 아니면 등록이 안됩니다.
(plusfriends 동의항목은 위 파일 등록과 무관하고 "카카오톡 채널 관계 확인하기"API 정보 제공 동의 입니다.)

일배치로 처리 하는 경우도 있고
특정 타겟팅 추가항목을 기반으로 고객파일 등록하는 경우도 있습니다.

https://developers.kakao.com/docs/latest/ko/kakaotalk-channel/prerequisite#admin-api
https://developers.kakao.com/docs/latest/ko/kakaotalk-channel/rest-api#create-user-file

1개의 좋아요

친구가 아니면 등록이 안된다고 하셨는데,
그러면 보통 식별을 안하고 모든 고객의 정보들을 올리면고 자동으로 튕기는 식으로 진행되는 건가요?
추가로, 식별을 한다면 무엇을 기준으로 식별하는지 문의드립니다.

보통은 카카오 싱크로 가입된 고객은
소유하신 시스템의 DB에 저장되며 카카오에서 전달 받은 앱유저ID가 함께 저장될텐데요.

최근 구매일, 구매 금액 등 업로드할 정보와 앱유저ID를 포함하여 데이터 준비 후,
카카오톡 채널 관계 확인하기로 친구 여부 체크하여 올리시면됩니다.
https://developers.kakao.com/docs/latest/ko/kakaotalk-channel/rest-api#check-relationship

넵넵, 감사합니다.

지금 저희의 계획은 고객정보를 배치를 이용하여 주기적으로 업로드를 하려고합니다.

만약 기존에 등록되어있는 고객정보를 또 업로드를 하려고하면 어떤 이벤트가 발생하는지 질문드립니다.

API 혹은 채널 관리자에서 고객파일을 등록하실 수 있고,
타겟 메시지를 발송하실때, 고객파일을 고객 그룹으로 만들 수 있는데요.

기 등록된 파일에 동일한 앱유저ID에 해당하는 고객을 등록하면 기존 정보를 갱신하게 됩니다.

어드민 키를 이용하여 채널 확인을 하는데,
Error: connect ECONNREFUSED 27.0.237.16:443
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1148:16) {
errno: -61,
code: ‘ECONNREFUSED’,
syscall: ‘connect’,
address: ‘27.0.237.16’,
port: 443,
}
이러한 결과나 나와서 문의드립니다.

혹시 어떤 조치를 해야하는지 알수있을까요?

안녕하세요.

에러로그를 보니 plusfriends 권한 동의가 안되어 에러 발생했네요.

조회하시려는 사용자가 추가항목 동의받기 로 plusfriends 권한 동의 되어 있어야 조회 가능합니다.

plusfriends 항목을 필수 동의로 설정하시면, 사용자가 카카오 로그인 시에 동의창이 뜨므로 추가 항목 동의 없이 기존 로그인 기능으로도 동의 받으실 수 있습니다.

참고 부탁드려요~

errno: -61,
code: ‘ECONNREFUSED’,
syscall: ‘connect’,
address: ‘27.0.237.16’,
port: 443,
config: {
url: ‘https://kapi.kakao.com/v1/api/talk/channels?target_id_type=user_id&target_id=1759146260&channel_public_ids=["_tnxeYT"]’,
method: ‘get’,
headers: {
Accept: ‘application/json, text/plain, /’,
Authorization: ‘KakaoAK 어드민키’,
‘Content-Type’: ‘application/x-www-form-urlencoded;charset=utf-8’,
‘User-Agent’: ‘axios/0.19.2’
},

아래와 같은 형태로 보내었고, 1759146260 유저는 친구도 되어있고 모든동의도 완료되어있습니다.

1759146260 유저는 371111 앱에 가장 최근 호출이력이 아래와 같은데요. 정상 조회된 이력입니다.

August 30th 2021, 13:56:52.183 /v1/api/talk/channels

호출 일시와 호출한 앱ID확인해주시겠어요?

14:27 에 호출했습니다.
아예 전송이 안간건가요?

Error: connect ECONNREFUSED 203.133.166.33:443
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1148:16) {
errno: -61,
code: ‘ECONNREFUSED’,
syscall: ‘connect’,
address: ‘203.133.166.33’,
port: 443,
config: {
url: ‘https://kapi.kakao.com/v1/api/talk/channels?target_id_type=user_id&target_id=1759146260&channel_public_ids=["_tnxeYT"]’,
method: ‘get’,
headers: {
Accept: ‘application/json, text/plain, /’,
Authorization: ‘KakaoAK ADMINKEY’,
‘Content-Type’: ‘application/x-www-form-urlencoded;charset=utf-8’,
‘User-Agent’: ‘axios/0.19.2’
},
transformRequest: [ [Function: transformRequest] ],
transformResponse: [ [Function: transformResponse] ],
timeout: 0,
adapter: [Function: httpAdapter],
xsrfCookieName: ‘XSRF-TOKEN’,
xsrfHeaderName: ‘X-XSRF-TOKEN’,
maxContentLength: -1,
validateStatus: [Function: validateStatus],
data: undefined
},

네, 371111 앱에 해당 사용자로 14:27 호출 이력이 없어요.

사용하신 ADMINKEY는 371111 앱과 일치하는지 다시한번 체크 해보시겠어요?

371111 앱의 가장 최근 /v1/api/talk/channels 호출은 아래 시간이고 미동의 에러였습니다.

August 31st 2021, 14:15:42.643 /v1/api/talk/channels

{
url: ‘https://kapi.kakao.com/v1/api/talk/channels?target_id_type=user_id&target_id=1759146260&channel_public_ids=["_tnxeYT"]’,
method: ‘get’,
headers: {
Accept: ‘application/json, text/plain, /’,
Authorization: ‘KakaoAK 어드민키’,
‘Content-Type’: ‘application/x-www-form-urlencoded; charset=utf-8’,
‘User-Agent’: ‘axios/0.19.2’
}

해당양식에서 틀린부분이있나요?
어드민키는 맞는거 확인했고 호출이 안됩니다.

성공을 했다는 부분은 아마 swagger 사용건 일것같습니다.

node에서는 호출이안됩니다.

app.get('/v1/api/talk/channels', (req, res) => {
    axios
        .get("https://kapi.kakao.com/v1/api/talk/channels",
            {
                params: {
                    "target_id": '1515035367',
                    "target_id_type": 'user_id',
                    "channel_public_ids": ['_aaa','_bbb']
                },
                headers: {
                    'content-Type': 'application/x-www-form-urlencoded;charset=utf-8',
                    'Authorization': 'KakaoAK 어드민키'
                }
            }
        )
        .then((res) => {
            console.log("success");
            console.log(res);
        })
        .catch((err) => {
            console.log("err");
            console.log(err.response.headers);
            console.log(err.response);
        })
    res.send(res.statusText)
})

위와 같이 node 에서 테스트 해보니 잘 작동하는데, 참고해보시겠어요?

감사합니다.

혹시 파일생성은 꼭 API를 통해서 만해야하나요?

미리 만들어놓고 상황에 따라 다른 파일에 사용자 업로드는 안되나요?

혹시 가능하다면 어디를 보면서 참고하는게 좋을까요?

추가로, API로 사용자를 추가할때 컬럼명은 한글로해야하는지도 문의드립니다.
예) : 생년월일 등등

https://center-pf.kakao.com/

채널 관리자센터 > 관리 > 고객 파일 메뉴에서 미리 만들어 놓은 파일을 업로드 하실 수 있습니다.
(템플릿도 다운로드 하실 수 있습니다.)


카카오톡 채널 고객 관리 API를 이용하여 고객 파일을 등록할 경우, 반드시 지정된 스키마 규칙을 따라야 합니다.

  • 고객의 데이터가 문자열(String)일 경우, 지원하는 키 값만 사용할 수 있습니다: 생년월일, 국가, 지역, 성별, 연령, 구매금액, 포인트, 가입일, 최근 구매일, 응모일
  • 기본적으로 제공하는 키 값 외에 새로운 키를 추가할 수 있지만, 이 경우 키 값의 자료형이 숫자(Number)여야 합니다. 데이터가 문자열일 경우, 데이터의 종류를 숫자로 변환하여 입력할 수 있도록 합니다. 자세한 사항은 카카오톡 채널 관리자센터 공지사항을 참고합니다.