3.1개요
수신 도메인은 상용기준으로 HTTPS만 등록할 수 있고 기본 포트인 443을 제외하고는 커스텀 포트는 허용하지 않는다.
수신 도메인은 상용기준으로 CA가 발급한 인증서만 사용 가능하며 사설 인증서는 허용하지 않는다.
수신 도메인에 prefix (kakao) 추가 해야한다. (ex : https://tkakao.uconnect.co.kr/kakao )
3.1.1시퀀스 다이어그램 (Sequence Diagram)
3.1.2사용자 메시지 수신
path : /message
method : POST
header
Content-type: application/json
request body에 Json 형태의 데이터 전달
수신 URL Sample : https://tkakao.uconnect.co.kr/kakao/message ( 수신도메인 + 메시지 수신 path )
키 | 타입 | 설명 |
---|---|---|
chat_type | text | KAKAO |
user_key | text | 메시지를 발송한 사용자 키 |
sender_key | text | 메시지를 수신한 발신프로필 키 |
time | number | 메시지 전달 상담톡 서버 시각 (실제 유저가 입력한 시각은 아님) |
serial_number | number | 메시지 고유 id |
type | text | 사용자가 전송한 메시지 종류 (text,photo,video,audio,file) |
chat_mode | text | chat : 기본값, bot: 봇 메시지 |
content | text or json string | 사용자가 전송한 메시지 (type이 text 일경우는 text 로, type 이 text 아닐 경우 json 데이터로 들어옴) ==샘플== "content":"라라라라" 하위 호환을 위해 임시 유지 묶음 이미지의 경우 유실을 최소화하기 위해 첫번째 이미지만 전달 |
contents | array | 사용자가 전송한 메시지 (content => contents 로 변경됨, 2023/07 부터) (type이 text 일경우는 array (text) 로, type 이 text 아닐 경우 array(json) 데이터로 들어옴) == 샘플== 텍스트 타입 "contents":["안녕"] 텍스트 타입 외 "contents":[{"url":"http://dn-m.talk.kakao.com/talkm/oZXvwAViX6/J6PJf9MvwPowgnB8QjhwK0/i_ee035cd38e31.jpg","comment":""},{"url":"http://dn-m.talk.kakao.com/talkm/oZXvtqFajn/QT6VOpt45GRCRsRDPGDCqk/i_e5ea1d14fc3a.jpg","comment":""}] |
attachment | text | 사용자가 전송한 메시지가 1000자를 초과하는 경우 - 4000자까지 자른 메시지를 content 필드로 전달 - 전체 메시지를 attachment url(txt파일)로 추가 전달 |
extra | text | 사용자가 전송한 메시지의 extra 정보 - BK/MD 버튼을 클릭하여 전송한 메시지 ("extra":"상품 상담") |
session_id | text | 세션아이디 |
e164 | text | user_key 로 찾은 전화번호 |
user_id | text | user_key 로 찾은 사용자 id |
user_name | text | user_key 로 찾은 사용자 이름 |
agree_type | int | 동의유형(0:기본, 1:1회성동의) |
- 사용자가 전송 가능한 파일 확장자
타입 | 확장자 | 설명 |
---|---|---|
이미지 | jpg, jpeg, gif, bmp, png, tiff, bmp | |
동영상 | mp4, m4v, avi, asf, wmv, mkv, ts, mpg, mpeg, mov, flv, ogv | |
오디오 | mp3, wav, flac, tta, tak, aac, wma, ogg, m4a | |
파일 | pdf, odp, ppt, pptx, key, show, doc, docx, hwp, txt, rtf, xml, wks, wps, xps, md, odf, odt, pages, ods, csv, tsv, xls, xlsx, numbers, cell, psd, ai, sketch, tif, tiff, tga, webp, zip, gz, bz2, rar, 7z, lzh, alz | Mobile_iOS는 미지원 |
- 사용자가 전송 가능한 파일 용량
타입 | 용량 | 설명 |
---|---|---|
이미지 | Mobile: 15MB PC: 300MB | |
동영상 | 300MB | 직접 촬영시 5분 제한 |
오디오 | Mobile: 5분 PC: 300MB | |
파일 | 300MB | Mobile_iOS는 미지원 |
3.1.3사용자 메타 정보 수신
path : /reference
method : POST
header
Content-type: application/json
키 | 타입 | 설명 | 예제 |
---|---|---|---|
chat_type | text | KAKAO | KAKAO |
user_key | text | 메시지를 발송한 사용자 키 | |
app_user_id | number | 메시지를 발신한 사용자의 앱 유저 아이디 (없을 경우 null로 표시) | |
sender_key | text | 메시지를 수신한 발신프로필 키 | |
reference | json | 고객사에서 설정한 메타정보 extra : 버튼을 통해 전달된 메타 정보 | "reference":{ "extra":"고객사에서 관리되는 커스텀한 메타 정보가 전달" } |
last_reference | json | 고객사에서 설정한 메타 정보가 없을 경우 가장 마지막 정보 extra : 버튼을 통해 전달된 메타 정보 bot: 상담을 어떻게 시작했는지 값 bot_event : 봇으로 상담 시작 시, 봇블럭 이벤트 값 created_at : 마지막 메타 정보 생성 | "last_reference":{ "extra":"객사에서 관리되는 커스텀한 메타 정보가 전달", "created_at":"2019-07-21T19:34:29.5", "bot":"true", "bot_event":"TEST_EVENT" } |
session_id | text | 세션 아이디 | "session_id":"123 |
3.1.4사용자 세션 종료 정보 수신
path : /expired_session
method : POST
header
Content-type: application/json
request body에 Json 형태의 데이터 전달
키 | 타입 | 설명 |
---|---|---|
chat_type | text | KAKAO |
user_key | text | 메시지를 발송한 사용자 키 |
sender_key | text | 메시지를 수신한 발신프로필 키 |
session_id | text | 종료된 세션 아이디 |
3.1.5카카오톡 채널 1:1 채팅 내역 조회를 위한 사용자 동의 정보 수신
path : /user_agreement
method : POST
header
Content-type: application/json
request body에 Json 형태의 데이터 전달
키 | 타입 | 설명 |
---|---|---|
chat_type | text | KAKAO |
user_key | text | 메시지를 발송한 사용자 키 |
sender_key | text | 메시지를 수신한 발신프로필 키 |
expired_at | text | 만료일 ("expired_at":"2019-01-01") |
3.2카카오톡 연결
3.2.1버튼을 통한 상담 시작(GET 방식)
dmain :https://bizmessage.kakao.com
path: /chat/open/@uuid
method : GET
키 | 타입 | 설명 |
---|---|---|
uuid | text | 카카오톡 채널 |
extra | text(50) | 상담시 전달하고 싶은 메타 정보 (1.2 사용자 메시지 수신을 참고 하세요.) |
bot | text | true: 봇으로 시작 false: 상담톡으로 시작 auto:봇으로 시작하되, 상담 세션이 일을경우 상담모드 유지 |
event | text(5) | 붓으로 상담 시작시 같이 실행될 봇 말블럭 이벤트 명 |
|
- [Example]
https://bizmessage.kakao.com/chat/open/@mzcw64slmdqynoy?extra=01011112222
(위 주소는 예시이며 실제 정상적으로 동작하지는 않습니다)