4.1API 개요
청약 정보 및 상담사 인증 API 를 제공한다.
API는 http/https 프로토콜을 사용하며, GET, POST method를 사용합니다.
response는 JSON형태 로 전달됩니다.
4.1.1선결 조건
연동을 위해서는 서버쪽 ACL 등록이 필요하다.
4.1.2상당사 API 리스트
상담사 로그인의 경우 상담사가 관리자 인지, 상담사 인지에 따라 API 접근 권한이 달라진다.
로그인 처리
인증키 수신
4.1.2.1상담사 정보 조회
상담사 정보조회
4.1.2.2회사 정보 조회
회사 정보 조회
4.1.2.3상담사 로그아웃
로그아웃 처리
인증키 만료처리
4.1.3청약 정보 조회 API 리스트
4.1.3.1청약정보 조회
청약정보
회사정보
4.2상담사 API
4.2.1인증 토큰 조회
성공시 인증키를 발송한다.
인증키는 조회 API 에 사용된다.
id/pw 일 경우 Basic 인증을 사용한다.
token 인증일 경우는 Bearer 인증을 사용한다.
4.2.1.1Request
Description | 채팅상담 오픈 요청. |
---|---|
Method | POST |
API URL | /{version}/oauth/token |
Header Parameters
키네임 | 타입 | 필수 | 설명 |
---|---|---|---|
Authorization | string | Y | Basic 클라이언트 정보 - 예시(id/pw): Basic {base64_encode({clientId}:{clientSecret})} - 예시(key): Bearer token |
Content-Type | string | Y | application/x-www-form-urlencoded 고정 |
FomData
키네임 | 타입 | 필수 | 설명 |
---|---|---|---|
grant_type | string | Y/N | OAuth 2.0 인증방식 - Default: client_credentials |
- [SAMPLE] javascrpt
var myHeaders = new Headers(); myHeaders.append("Authorization", "Basic btoa({client_id}:${client_secret})"); var urlencoded = new URLSearchParams(); urlencoded.append("grant_type", "client_credentials"); var requestOptions = { method: 'POST', headers: myHeaders, body: urlencoded, redirect: 'follow' }; fetch("${base_url}/v1/oauth/token", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)
4.2.1.2Response
- HTTP HEADER 200: 성공, 나머지는 실패
키 | - | 타입 | 설명 |
---|---|---|---|
code | text | 결과 코드 | |
message | text | 결과 메시지 | |
data | object | - | |
userId | text | 상담사 ID | |
access_token | text | 인증 key | |
expires_in | text | server token 유효기간(초) | |
token_type | text | 토큰타입(Bearer) |
아래의 코드표 참조
4.2.2상담사 정보조회
상담사 정보를 조회한다.
4.2.2.1Request
Description | 채팅상담 오픈 요청. |
---|---|
Method | GET |
API URL | /{version}/agent/info |
header | Authorization: Bearer {access_token} |
* 기타 채팅상담 시 필요한 항목이 있을 경우 협의 후 추가.
- [SAMPLE]
curl -X GET "http://127.0.0.1:8450/agent/info" \ -H 'Authorization: Bearer eyAiYWxnIjogIkhTMjU2IiwgInR5cCI6ICJKV1QiIH0.eyAiaWF0IjogMTcyNzMxNTE4NCwgImV4cCI6IDE3Mjc0MDE1ODQsICJpZCI6ICJURVNUMzAwMDEiLCAibmFtZSI6ICJURVNUMzAwMDEiLCAiZW1haWwiOiAiIiB9.wBAkzWMdGv8dY7TksVU91my7oBjZFXfCpLz2BaF1Ma4'
4.2.2.2Response
- HTTP HEADER 200: 성공, 나머지는 실패
키 | - | 타입 | 설명 |
---|---|---|---|
code | text | 결과 코드 | |
data | |||
userid | text | 상담사 정보 | |
name | text | 이름 | |
text | 이메일 | ||
phone | text | 전화번호 | |
tenant | text | 회사 code |
4.2.3회사 정보조회
회사 정보를 조회한다.
4.2.3.1Request
Description | 채팅상담 오픈 요청. |
---|---|
Method | GET |
API URL | /{version}/company/info |
header | Authorization: Bearer {access_token} |
* 기타 채팅상담 시 필요한 항목이 있을 경우 협의 후 추가.
- [SAMPLE]
curl -X GET "http://127.0.0.1:8450/company/info" \ -H 'Authorization: Bearer eyAiYWxnIjogIkhTMjU2IiwgInR5cCI6ICJKV1QiIH0.eyAiaWF0IjogMTcyNzMxNTE4NCwgImV4cCI6IDE3Mjc0MDE1ODQsICJpZCI6ICJURVNUMzAwMDEiLCAibmFtZSI6ICJURVNUMzAwMDEiLCAiZW1haWwiOiAiIiB9.wBAkzWMdGv8dY7TksVU91my7oBjZFXfCpLz2BaF1Ma4'
4.2.3.2Response
- HTTP HEADER 200: 성공, 나머지는 실패
키 | - | 타입 | 설명 |
---|---|---|---|
code | text | 결과 코드 | |
data | |||
tenant | text | 회사코드 | |
name | text | 회사명 | |
manager | text | 담당자명 | |
text | 담당자 이메일 | ||
phone | text | 담당자 전화번호 | |
... | text | 항목 추가 예정 |
4.3청약 정보 조회 API
4.3.1서비스 포탈 로그인
성공시 인증키를 발송한다.
인증키는 조회 API 에 사용된다.
4.3.1.1Request
Description | 채팅상담 오픈 요청. |
---|---|
Method | POST |
API URL | /{version}/subscription/oauth/token |
Header Parameters
키네임 | 타입 | 필수 | 설명 |
---|---|---|---|
Authorization | string | Y | Basic 클라이언트 정보 - 예시(id/pw): Basic ClientID ClientSecret - 예시(key): Basic ClientSecret |
Content-Type | string | Y | application/x-www-form-urlencoded 고정 |
FomData
키네임 | 타입 | 필수 | 설명 |
---|---|---|---|
grant_type | string | Y/N | OAuth 2.0 인증방식 - Default: client_credentials |
4.3.1.2Response
- HTTP HEADER 200: 성공, 나머지는 실패
키 | - | 타입 | 설명 |
---|---|---|---|
code | text | 결과 코드 | |
message | text | 결과 메시지 | |
data | object | - | |
userId | text | 회사아이디 | |
tenant | text | 테넌트 id | |
access_token | text | 인증 key | |
expires_in | text | server token 유효기간(초) | |
token_type | text | 토큰타입(basic, bearer) |
아래의 코드표 참조
4.3.2청약 정보 조회
청약 정보를 조회 한다.
4.3.2.1Request
Description | 채팅상담 오픈 요청. |
---|---|
Method | GET |
API URL | /{version}/subscription/info |
header | Content-Type: application/json; charset=UTF-8 Authorization: Bearer {access_token} |
* 기타 채팅상담 시 필요한 항목이 있을 경우 협의 후 추가.
- [SAMPLE]
curl -X GET "https://xbiztalk.nexuscommunity.kr/subscription/info" \ -H 'Authorization: Bearer eyAiYWxnIjogIkhTMjU2IiwgInR5cCI6ICJKV1QiIH0.eyAiaWF0IjogMTcyOTEyNDY4NCwgImV4cCI6IDE3MjkyMTEwODQsICJpZCI6ICIwMTAxIiwgInRlbmFudCI6ICJuZXh1cyIgfQ.afzOUI442uatNCGYGkYj2-QP_rQdLzwHgtIEXGTv1tc'
4.3.2.2Response
- HTTP HEADER 200: 성공, 나머지는 실패
키 | - | 타입 | 설명 |
---|---|---|---|
code | text | 결과 코드 | |
data | |||
tenant | text | 회사코드 | |
name | text | 회사명 | |
text | 이메일 | ||
subscription | object | 아래 subscription 정의 참조 | |
aiInterview | object | 아래 ainterview 정의 참조 | |
aiTraining | object | 아래 aiTraining 정의 참조 | |
agents | array | 상담사(관리자) 정보 배열 아래 agents 정의 참조 | |
... | ... | 항목 추가 예정 |
subscription 정의
키네임 | 타입 | 필수 | 설명 | |
---|---|---|---|---|
subscription | object | Y | 메시지 배열 | |
type | string | Y | 청약 타입(요금제 구분) | |
status | string | Y | 청약상태 | |
startDate | string | Y | 시작날짜 | |
... |
aiInterview 정의
키네임 | 타입 | 필수 | 설명 | |
---|---|---|---|---|
aiInterview | object | Y | ai면접사용 여부 | |
use | boolean | Y/N | 사용여부 (true, false) | |
startDate | text | Y/N | 시작일 ex) "startDate": "20230726" | |
plan | text | Y/N | plan 정보(건수정보 10, 50, 100) ex) "plan":"10" |
aiTraining 정의
키네임 | 타입 | 필수 | 설명 | |
---|---|---|---|---|
aiTraining | object | Y/N | ai교육사용 여부 | |
use | boolean | Y/N | ||
startDate | text | Y/N | 교육 시작일(YYYYMMDD) ex) "startDate": "20230726" | |
plan | text | Y/N | plan 정보(1M, 3M, 6M, 12M) ex) "plan":"3M" |
agents 정의
키네임 | 타입 | 필수 | 설명 | |
---|---|---|---|---|
agents | array | Y | 상담원 배열 | |
agentId | text | Y | 상담원 ID | |
agentName | text | Y | 상담원 이름 |
[응답]
{ "code": "200", "message": "OK", "data": { "subscription": { "type": "basic", "status": "10", "startDate": "20241020" }, "aiInterview": { "use": true, "startDate": "20241111", "plan": "10" }, "aiTraining": { "use": true, "startDate": "20241111", "plan": "6M" }, "tenant": "nexus", "name": "0101회사", "email": "1@gmail.com", "manager": "담당1", "phone": "010", "agents": [ { "agentId": "NEX10000", "agentName": "NEXUS_MASTER" }, { "agentId": "csr111001", "agentName": "상담사1" }, { "agentId": "csr111005", "agentName": "상담사5" }, { "agentId": "csr111002", "agentName": "상담사2" }, { "agentId": "csr111003", "agentName": "상담사3" }, { "agentId": "csr111004", "agentName": "상담사4" } ] } }
4.4청약정보 수신 API
청약을 신청, 변경, 해지시 정보를 전달 한다.
4.4.1청약신청
청약 신청 완료시 정보를 전달 한다.
4.4.1.1Request
Description | 채팅상담 오픈 요청. |
---|---|
Method | POST |
API URL | /{version}/subscription/create |
header | Content-Type: application/json; charset=UTF-8 |
키 | 타입 | 설명 |
---|---|---|
id | text | 서비스포탈 Id |
tenant | text | 회사코드 |
name | text | 회사명 |
text | 이메일 | |
subscription | object | subscription 정의 참조 |
aiInterview | object | ai 면접 정의 참조 |
aiTraining | object | ai 교육 정의 참조 |
agents | array | 상담원 정의 참조 |
... | ... | 항목 추가 예정 |
subscription 정의
키네임 | 타입 | 필수 | 설명 | |
---|---|---|---|---|
subscription | object | Y | 메시지 배열 | |
type | string | Y | 청약 타입(요금제 구분) (basic, premium) | |
status | string | Y | 청약상태(10:신청, 20:구독) | |
startDate | string | Y | 시작날짜(YYYYMMDD) 20241020 | |
... |
aiInterview 정의
키네임 | 타입 | 필수 | 설명 | |
---|---|---|---|---|
aiInterview | object | Y | ai면접사용 여부 | |
use | boolean | Y/N | 사용여부 (true, false) | |
startDate | text | Y/N | 시작일 ex) "startDate": "20230726" | |
plan | text | Y/N | plan 정보(건수정보 10, 50, 100) ex) "plan":"10" |
aiTraining 정의
키네임 | 타입 | 필수 | 설명 | |
---|---|---|---|---|
aiTraining | object | Y/N | ai교육사용 여부 | |
use | boolean | Y/N | ||
startDate | text | Y/N | 교육 시작일(YYYYMMDD) ex) "startDate": "20230726" | |
plan | text | Y/N | plan 정보(1M, 3M, 6M, 12M) ex) "plan":"3M" |
agents 정의
키네임 | 타입 | 필수 | 설명 | |
---|---|---|---|---|
agents | array | Y | 상담원 배열 | |
agentId | text | Y | 상담원 ID | |
agentName | text | Y | 상담원 이름 |
4.4.1.2Response
- HTTP HEADER 200: 성공, 나머지는 실패
키 | - | 타입 | 설명 |
---|---|---|---|
code | text | 결과 코드 | |
message | text | 결과 메시지 |
4.4.2청약수정
청약 수정 완료시 정보를 전달 한다.
4.4.2.1Request
Description | 채팅상담 오픈 요청. |
---|---|
Method | POST |
API URL | /{version}/subscription/update |
header | Content-Type: application/json; charset=UTF-8 |
키 | 타입 | 설명 |
---|---|---|
id | text | 서비스포탈 Id |
tenant | text | 회사코드 |
name | text | 회사명 |
text | 이메일 | |
subscription | object | subscription 정의 참조 |
plan | object | plan 정의 참조 |
agents | array | 상담원 id 배열 |
... | ... | 항목 추가 예정 |
subscription 정의
4.4.2.2Response
- HTTP HEADER 200: 성공, 나머지는 실패
키 | - | 타입 | 설명 |
---|---|---|---|
code | text | 결과 코드 | |
message | text | 결과 메시지 |
4.4.3청약해지
청약 해지 완료시 정보를 전달 한다.
4.4.3.1Request
Description | 채팅상담 오픈 요청. |
---|---|
Method | POST |
API URL | /{version}/subscription/delete |
header | Content-Type: application/json; charset=UTF-8 |
키 | 타입 | 설명 |
---|---|---|
id | text | 서비스포탈 Id |
tenant | text | 회사코드 |
4.4.3.2Response
- HTTP HEADER 200: 성공, 나머지는 실패
키 | 타입 | 설명 |
---|---|---|
code | text | 결과 코드 |
message | text | 결과 메시지 |
아래의 코드표 참조
4.5코드 정의
4.5.1오류 코드
code | message | 설명 |
---|---|---|
0 | 정상코드 | |
-400 | ForbiddenException | 권한 없음 |
-500 | UnauthorizedException | 인증 실패 |
-502 | InvalidSessionException | 세션이 만료되었거나 존재하지 않음 |
-509 | InvalidJsonException | 잘못된 파라메터 요청 |
-600 | FailedToSendMessageException | 메시지 전송 실패 |
-601 | InternalSystemErrorException | 내부 시스템 에러 |