From 3e59693e017742d971f490eb7c58870cb745a98d Mon Sep 17 00:00:00 2001 From: joonhoekim <26rote@gmail.com> Date: Fri, 18 Jul 2025 03:58:34 +0000 Subject: (김준회) 결재 모듈 개발 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/knox-api/approval/approval-guide.html | 4999 +++++++++++ lib/knox-api/approval/approval.ts | 603 ++ lib/knox-api/employee/employee-guide.html | 2154 +++++ lib/knox-api/employee/employee.ts | 435 + lib/knox-api/index.ts | 6 + lib/knox-api/mail/knox-mail.ts | 312 + lib/knox-api/mail/mail-guide.html | 2114 +++++ lib/knox-api/messenger/messenger-guide.html | 9422 ++++++++++++++++++++ lib/knox-api/messenger/messenger.ts | 925 ++ .../realtime-notification-guide.html | 764 ++ .../realtime-notification/realtime-notification.ts | 333 + 11 files changed, 22067 insertions(+) create mode 100644 lib/knox-api/approval/approval-guide.html create mode 100644 lib/knox-api/approval/approval.ts create mode 100644 lib/knox-api/employee/employee-guide.html create mode 100644 lib/knox-api/employee/employee.ts create mode 100644 lib/knox-api/index.ts create mode 100644 lib/knox-api/mail/knox-mail.ts create mode 100644 lib/knox-api/mail/mail-guide.html create mode 100644 lib/knox-api/messenger/messenger-guide.html create mode 100644 lib/knox-api/messenger/messenger.ts create mode 100644 lib/knox-api/realtime-notification/realtime-notification-guide.html create mode 100644 lib/knox-api/realtime-notification/realtime-notification.ts (limited to 'lib') diff --git a/lib/knox-api/approval/approval-guide.html b/lib/knox-api/approval/approval-guide.html new file mode 100644 index 00000000..b1b085fb --- /dev/null +++ b/lib/knox-api/approval/approval-guide.html @@ -0,0 +1,4999 @@ +
내부 임직원에 한해 결재 상신이 가능합니다.
결재 상신 뿐만 아니라 결재상황조회 및 상신취소 등이 가능합니다.
| API | +URI | +Method | +Description | +
|---|
| 결재상신 | +/approval/api/v2.0/approvals/submit + | +POST | +결재를 상신한다 + | +
| 보안결재상신 | +/approval/api/v2.0/approvals/secu-submit + | +POST | +보안(대외비/극비) 결재를 + 상신한다 | +
| 결재상세상황조회 | +/approval/api/v2.0/approvals/{apInfId}/detail + | +GET | +결재문서의 정보를 상세 + 조회한다 | +
| 결재본문조회 | +/approval/api/v2.0/approvals/{apInfId}/content + | +GET | +결재문서의 본문을 + 조회한다 | +
| 결재상황조회 | +/approval/api/v2.0/approvals/status + | +POST | +결재문서의 진행 상태를 + 조회한다 | +
| 결재연계ID조회 | +/approval/api/v2.0/approvals/apinfids + | +GET | +결재ID로 결재연계ID를 + 조회한다 | +
| 상신함리스트조회 | +/approval/api/v2.0/approvals/submission + | +GET | +요청 연계시스템ID로 연계 + 상신처리된 상신자의 상신함의 정보를 조회한다 | +
| 연계이력조회 | +/approval/api/v2.0/approvals/apinfidinfos + | +GET | +요청 연계시스템ID에서 + 상신된 결재문서의 연계 이력을 조회한다 | +
| 상신취소 | +/approval/api/v2.0/approvals/{apInfId}/cancel + | +POST | +결재문서를 + 상신취소한다 | +
| 저장된결재경로목록조회 | +/approval/api/v2.0/approvals/ownaplnlist + | +GET | +개인별 저장된 결재경로 + 목록을 조회한다 | +
| 저장된결재경로상세조회 + | +/approval/api/v2.0/approvals/{pslAplnId}/ownaplndetail + | +GET | +개인별 저장된 + 결재경로 ID로 정보를 상세 조회한다 | +
/approval/api/v2.0/approvals/submit
+삼성 그룹사 임직원 뿐만 아니라 외부수신인을 포함하여 결재 상신이 가능하며, 상신된 결재는 각 + 사용자의 결재함에 저장됩니다.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +연계 시스템 + ID | +System-ID | +Y | +Header | +String | +CXXREST0001 | ++ |
| 2 | +결재본문 | +contents | +Y | +Body | +String | +TEST + | ++ |
| 3 | +본문종류 | +contentsType + | +Y | +Body | +String | +TEXT | +TEXT,HTML,MIME | +
| 4 | +보안문서타입 | +docSecuType + | +Y | +Body | +String | +PERSONAL | +CONFIDENTIAL, + CONFIDENTIAL_STRICT 지정 시 에러 | +
| 5 | +통보옵션 | +notifyOption + | +Y | +Body | +String | +0 + | +0: 통보자통보 결재경로포함 , 1: 모두통보 결재경로포함 2: 통보자통보 결재경로포함안함 , 3: 모두통보 결재경로포함안함 |
+
| 6 | +긴급여부 + | +urgYn + | +Y | +Body | +String | +N | ++ |
| 7 | +상신일시 + | +sbmDt + | +Y | +Body | +String | +20190524145033 | ++ |
| 8 | +타임존 | +timeZone | +Y | +Body | +String | +GMT + | ++ |
| 9 | +문서관리저장코드 + | +docMngSaveCode + | +Y | +Body | +String | +0 | +0 : 문서관리저장안함 1 : + 문서관리저장함 |
+
| 10 | +결재제목 | +subject | +Y | +Body | +String | +근태신청 + | ++ |
| 11 | +상신언어 | +sbmLang | +Y | +Body | +String | +ko | +ko : korean ja : + japanese zh : chinese en : english | +
| 12 | +연계ID | +apInfId | +Y | +Body | +String | +TEST0000000000002120190523185902 + | +32자리의 고유 + 결재값 | +
| 13 | +중요여부 | +importantYn + | +N | +Body | +String | +Y + | ++ |
| 14 | +결재경로 + | +aplns + | +Y | +Body | +JSON String + | ++ | 상신자, 결재자 1명 이상 필수 ※결재자/합의자 없이 + 통보자만 지정된 결재경로 불가 |
+
| 15 | +EPID + | +epId + | +Y | +Body | +String | +M071015062623C9884 | +속성 한가지와 조합하여 사용 우선순위 userId > + epId > emailAddress |
+
| 16 | +사용자ID | +userId | +Y | +Body | +String | +qtp03 + | +속성 한가지와 조합하여 사용 우선순위 userId > + epId > emailAddress |
+
| 17 | +사용자이메일 | +emailAddress + | +Y | +Body | +String | +qtp03@stage.sasmung.com + | +속성 한가지와 조합하여 사용 우선순위 userId > + epId > emailAddress |
+
| 18 | +결재순번 + | +seq | +Y | +Body | +String | +0 | +상신자의 경우 반드시 0, + 병렬결재(합의)자의 경우 seq 일치 | +
| 19 | +설정구분 + | +role + | +Y | +Body | +String | +0 | +기안(0), 결재(1), 합의(2), 후결(3), 병렬합의(4), 병렬결재(7), 통보(9)
+ (후결자는 최대 1명, 병렬결재 & 병렬합의자는 최소 2명 + 이상) |
+
| 20 | +처리구분 | +aplnStatsCode + | +Y | +Body | +String | +0 + | +미결(0), + 결재(1), 반려(2), 전결(3), 자동결재(5) | +
| 21 | +전결권한여부 | +arbPmtYn | +Y | +Body | +String | +Y | ++ |
| 22 | +본문수정권한여부 + | +contentsMdfyPmtYn + | +Y | +Body | +String | +Y | ++ |
| 23 | +경로변경권한여부 + | +aplnMdfyPmtYn + | +Y | +Body | +String | +Y + | ++ | +
| 24 | +상신의견 | +opinion | +Y | +Body | +String | +근태결재입니다. | ++ |
| 25 | +첨부파일 | +attachments + | +N | +Body | +multipart/form-data + | +multipart/form-data로 변환된 + 바이너리 파일 및 파일명 | ++ |
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| API 호출 + 성공여부 | +result | +String | +success + | ++ |
| 결재연계ID정보 | +data | +JSON String + | ++ | + | +
| 결재연계ID | +apInfId | +String | +TEST1A000A11ACa02CVQ1A0CA4CA33C1 + | +리턴받은 결재 아이디를 + 이용하여, 상황조회 및 상신취소가 가능합니다. | +
| Request | +Response | +
|---|
+ /approval/approvals/api/v2.0/submit
+Content-Disposition: form-data; name="approval"
+ {
+ "aplns": [
+ {
+ "epId": "M071015062623C988403","seq": "0","role": "0","aplnStatsCode": "0",
+ "arbPmtYn": "Y","contentsMdfyPmtYn": "Y", "aplnMdfyPmtYn": "Y"
+ },
+ {
+ "epId": "M080325053708C989824","seq": "1","role": "1","aplnStatsCode": "0",
+ "arbPmtYn": "Y","contentsMdfyPmtYn": "Y", "aplnMdfyPmtYn": "Y"
+ }
+ ],
+ "contents": "TEST",
+ "contentsType": "TEXT",
+ "docSecuType": "PERSONAL",
+ "notifyOption": "0",
+ "urgYn": "N",
+ "sbmDt": "20190526121212",
+ "subject": "Test application",
+ "sbmLang": "ko",
+ "apInfId": "TEST0000000000002120190514143359",
+ "docMngSaveCode": "0",
+ "timeZone": "GMT+9"
+}
+Content-Disposition: form-data; name="attachments"; filename="attach1.jpg"
+Content-Disposition: form-data; name="attachments"; filename="attach2.txt"
+
+ |
+
+ {
+ "result": "success",
+ "data": {
+ "apInfId": "TEST0000000000002120190514143359"
+ }
+}
+
+ |
+
Error Code
+| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 | +APE001 | +데이터가 + 필요합니다. | ++ | +
| 400 | +APE002 | +입력된 데이터 형식이 + 잘못되었습니다. | ++ | +
| 400 | +APE003 | +입력값이 + 잘못되었습니다. | ++ | +
| 400 | +APE004 | +본문은 1MB를 초과할 + 수 없습니다. | ++ | +
| 400 | +APE006 | +제목에는 엔터값이 + 들어갈 수 없습니다. | ++ | +
| 400 | +APE007 | +제목은 300자를 + 초과할 수 없습니다. | ++ | +
| 403 | +APE008 | +중복된 데이터가 + 있습니다. | ++ | +
| 400 | +APE009 | +후결자는 1명만 지정 + 가능합니다. | ++ | +
| 400 | +APE010 | +결재경로는 최소 2명 + 이상입니다. | ++ | +
| 400 | +APE011 | +결재경로는 최대 99명 + 이하입니다. | ++ | +
| 400 | +APE012 | +상신자를 제외한 + 사용자들은 의견값을 설정할 수 없습니다. | ++ | +
| 400 | +APE013 | +미결 상태로 설정된 + 사용자들은 처리일시값을 설정할 수 없습니다. | ++ | +
| 400 | +APE014 | +상신의견값의 길이가 + 너무 깁니다. | ++ | +
| 400 | +APE016 | +결재자 혹은 합의자가 + 결재경로상에 없습니다. | ++ | +
| 400 | +APE017 | +결재경로 내 휴직 또는 + 퇴직자가 포함되어 있습니다. | ++ | +
| 400 | +APE018 | +외부 사용자는 + 통보자로만 지정이 가능합니다. | ++ | +
| 400 | +APE019 | +결재경로에 포함될 수 + 없는 사용자가 입력되었습니다. | ++ | +
/approval/api/v2.0/approvals/secu-submit
+보안 결재 옵션을 설정하여 대외비, 극비로 보안 결재를 상신할 수 있습니다. +
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +연계 시스템 + ID | +System-ID | +Y | +Header | +String | +CXXREST0001 | ++ |
| 2 | +결재본문 | +contents | +Y | +Body | +String | +TEST + | ++ |
| 3 | +본문종류 | +contentsType + | +Y | +Body | +String | +TEXT | +TEXT,HTML,MIME | +
| 4 | +보안문서타입 | +docSecuType + | +Y | +Body | +String | +CONFIDENTIAL + | +CONFIDENTIAL, + CONFIDENTIAL_STRICT 지정 시 에러 | +
| 5 | +통보옵션 | +notifyOption + | +Y | +Body | +String | +0 + | +0: 통보자통보 결재경로포함 , 1: 모두통보 결재경로포함 2: 통보자통보 결재경로포함안함 , 3: 모두통보 결재경로포함안함 |
+
| 6 | +긴급여부 + | +urgYn + | +Y | +Body | +String | +N | ++ |
| 7 | +상신일시 + | +sbmDt + | +Y | +Body | +String | +20190524145033 | ++ |
| 8 | +타임존 | +timeZone | +Y | +Body | +String | +GMT + | ++ |
| 9 | +문서관리저장코드 + | +docMngSaveCode + | +Y | +Body | +String | +0 | +0 : 문서관리저장안함 1 : + 문서관리저장함 |
+
| 10 | +결재제목 | +subject | +Y | +Body | +String | +근태신청 + | ++ |
| 11 | +상신언어 | +sbmLang | +Y | +Body | +String | +ko | +ko : korean ja : + japanese zh : chinese en : english | +
| 12 | +연계ID | +apInfId | +Y | +Body | +String | +TEST0000000000002120190523185902 + | +32자리의 고유 + 결재값 | +
| 13 | +중요여부 | +importantYn + | +N | +Body | +String | +Y + | ++ |
| 14 | +결재경로 + | +aplns + | +Y | +Body | +JSON String + | ++ | 상신자, 결재자 1명 이상 필수 ※결재자/합의자 없이 + 통보자만 지정된 결재경로 불가 |
+
| 15 | +EPID + | +epId + | +Y | +Body | +String | +M071015062623C9884 | +속성 한가지와 조합하여 사용 우선순위 userId > + epId > emailAddress |
+
| 16 | +사용자ID | +userId | +Y | +Body | +String | +qtp03 + | +속성 한가지와 조합하여 사용 우선순위 userId > + epId > emailAddress |
+
| 17 | +사용자이메일 | +emailAddress + | +Y | +Body | +String | +qtp03@stage.sasmung.com + | +속성 한가지와 조합하여 사용 우선순위 userId > + epId > emailAddress |
+
| 18 | +결재순번 + | +seq | +Y | +Body | +String | +0 | +상신자의 경우 반드시 0, + 병렬결재(합의)자의 경우 seq 일치 | +
| 19 | +설정구분 + | +role + | +Y | +Body | +String | +0 | +기안(0), 결재(1), 합의(2), 후결(3), 병렬합의(4), 병렬결재(7), 통보(9)
+ (후결자는 최대 1명, 병렬결재 & 병렬합의자는 최소 2명 + 이상) |
+
| 20 | +처리구분 | +aplnStatsCode + | +Y | +Body | +String | +0 + | +미결(0), + 결재(1), 반려(2), 전결(3), 자동결재(5) | +
| 21 | +전결권한여부 | +arbPmtYn | +Y | +Body | +String | +Y | ++ |
| 22 | +본문수정권한여부 + | +contentsMdfyPmtYn + | +Y | +Body | +String | +Y | ++ |
| 23 | +경로변경권한여부 + | +aplnMdfyPmtYn + | +Y | +Body | +String | +Y + | ++ | +
| 24 | +상신의견 | +opinion | +Y | +Body | +String | +근태결재입니다. | ++ |
| 25 | +첨부파일 | +attachments + | +N | +Body | +multipart/form-data + | +multipart/form-data로 변환된 + 바이너리 파일 및 파일명 | ++ |
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| API 호출 + 성공여부 | +result | +String | +success + | ++ |
| 결재연계ID정보 | +data | +JSON String + | ++ | + | +
| 결재연계ID | +apInfId | +String | +TEST1A000A11ACa02CVQ1A0CA4CA33C1 + | +리턴받은 결재 아이디를 + 이용하여, 상황조회 및 상신취소가 가능합니다. | +
| Request | +Response | +
|---|
+ /approval/v2.0/approvals/secu-submit
+Content-Disposition: form-data; name="approval"
+ {
+ "aplns": [
+ {
+ "epId": "M071015062623C988403","seq": "0","role": "0","aplnStatsCode": "0",
+ "arbPmtYn": "Y","contentsMdfyPmtYn": "Y", "aplnMdfyPmtYn": "Y"
+ },
+ {
+ "epId": "M080325053708C989824","seq": "1","role": "1","aplnStatsCode": "0",
+ "arbPmtYn": "Y","contentsMdfyPmtYn": "Y", "aplnMdfyPmtYn": "Y"
+ }
+ ],
+ "contents": "TEST",
+ "contentsType": "TEXT",
+ "docSecuType": "CONFIDENTIAL",
+ "notifyOption": "0",
+ "urgYn": "N",
+ "sbmDt": "20190526121212",
+ "subject": "Test application",
+ "sbmLang": "ko",
+ "apInfId": "TEST0000000000002120190514143359",
+ "docMngSaveCode": "0",
+ "timeZone": "GMT+9"
+}
+Content-Disposition: form-data; name="attachments"; filename="attach1.jpg"
+Content-Disposition: form-data; name="attachments"; filename="attach2.txt"
+
+ |
+
+ {
+ "result": "success",
+ "data": {
+ "apInfId": "TEST0000000000002120190514143359"
+ }
+}
+
+ |
+
Error Code
+| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 | +APE001 | +데이터가 + 필요합니다. | ++ | +
| 400 | +APE002 | +입력된 데이터 형식이 + 잘못되었습니다. | ++ | +
| 400 | +APE003 | +입력값이 + 잘못되었습니다. | ++ | +
| 400 | +APE004 | +본문은 1MB를 초과할 + 수 없습니다. | ++ | +
| 400 | +APE006 | +제목에는 엔터값이 + 들어갈 수 없습니다. | ++ | +
| 400 | +APE007 | +제목은 300자를 + 초과할 수 없습니다. | ++ | +
| 403 | +APE008 | +중복된 데이터가 + 있습니다. | ++ | +
| 400 | +APE009 | +후결자는 1명만 지정 + 가능합니다. | ++ | +
| 400 | +APE010 | +결재경로는 최소 2명 + 이상입니다. | ++ | +
| 400 | +APE011 | +결재경로는 최대 99명 + 이하입니다. | ++ | +
| 400 | +APE012 | +상신자를 제외한 + 사용자들은 의견값을 설정할 수 없습니다. | ++ | +
| 400 | +APE013 | +미결 상태로 설정된 + 사용자들은 처리일시값을 설정할 수 없습니다. | ++ | +
| 400 | +APE014 | +상신의견값의 길이가 + 너무 깁니다. | ++ | +
| 400 | +APE016 | +결재자 혹은 합의자가 + 결재경로상에 없습니다. | ++ | +
| 400 | +APE017 | +결재경로 내 휴직 또는 + 퇴직자가 포함되어 있습니다. | ++ | +
| 400 | +APE018 | +외부 사용자는 + 통보자로만 지정이 가능합니다. | ++ | +
| 400 | +APE019 | +결재경로에 포함될 수 + 없는 사용자가 입력되었습니다. | ++ | +
/approval/api/v2.0/approvals/{apInfId}/detail
+결재 연계 ID를 이용하여 결재문서의 정보(결재현황, 결재문서 상태)를 상세 조회 할 수 + 있습니다.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +연계ID | +apInfId | +Y | +Path | +String | +TEST0000000000002120190523185902 + | +32자리의 고유 + 결재값 | +
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| API 호출 + 성공여부 | +result | +String | +success + | ++ |
| 결재상세정보 | +data | +JSON String + | ++ | + | +
| 본문종류 | +contentsType + | +String | +TEXT | +TEXT,HTML,MIME | +
| 상신일시 + | +sbmDt + | +String | +20190524145033 | ++ |
| 상신언어 | +sbmLang | +String | +ko | +ko : korean ja : + japanese zh : chinese en : english | +
| 연계ID | +apInfId | +String | +TEST0000000000002120190523185902 + | +32자리의 고유 + 결재값 | +
| 연계 시스템 + ID | +System-ID | +String | +CXXREST0001 | ++ |
| 통보옵션 | +notifyOption + | +String | +0 + | +0: 통보자통보 결재경로포함 , 1: 모두통보 결재경로포함 2: 통보자통보 결재경로포함안함 , 3: 모두통보 결재경로포함안함 |
+
| 긴급여부 + | +urgYn + | +String | +N | ++ |
| 보안문서타입 | +docSecuType + | +String | +PERSONAL | +CONFIDENTIAL, + CONFIDENTIAL_STRICT 지정 시 에러 | +
| 결재상태정보 | +status | +String | +1 | +암호화실패(-3),암호화중(-2), + 예약상신(-1),보류(0),진행중(1),완결(2),반려(3),상신취소(4),전결(5),후완결(6) | +
| 타임존 | +timeZone | +String | +GMT + | ++ |
| 결재제목 | +subject | +String | +근태신청 + | ++ |
| 결재경로 + | +aplns + | +JSONList | ++ | + | +
| 처리일시 | +actPrssDt + | +String | +20190521015954 + | ++ | +
| 개봉일시 | +docOpenDt + | +String | +20190521015954 + | ++ | +
| 도착일시 | +docArvDt + | +String | +20190521015954 + | ++ | +
| 상신의견 | +opinion | +String | +근태결재입니다. | ++ |
| 결재관계자회사코드 + | +companyCode + | +String | +C98 | ++ |
| 결재관계자회사명 + | +companyName + | +String | +SAMSUNG + | ++ |
| 결재관계자총괄코드 + | +subOrgCode + | +String | +C98S01 | ++ |
| 결재관계자총괄명 + | +subOrgName + | +String | +개발총괄 | ++ |
| 결재관계자부서코드 + | +departmentCode + | +String | +C98S0201 + | ++ |
| 결재관계자부서명 + | +departmentName + | +String | +개발1팀 + | ++ |
| 결재관계자 + epid | +epId | +String | +M071015062623C988403 + | ++ |
| 결재관계자 + 메일주소 | +emailAddress + | +String | +qtp03@stage.samsung.com + | ++ |
| 결재관계자 + 이름 | +name | +String | +qtp03 | ++ |
| 결재관계자 + 직급코드 | +titleCode + | +String | +B3P1 | ++ | +
| 결재관계자 직급명 + | +titleName + | +String | +Engineer | ++ | +
| 결재순번 + | +seq | +String | +0 | +상신자의 경우 반드시 0, + 병렬결재(합의)자의 경우 seq 일치 | +
| 설정구분 + | +role + | +String | +0 | +기안(0), 결재(1), 합의(2), 후결(3), 병렬합의(4), 병렬결재(7), 통보(9)
+ (후결자는 최대 1명, 병렬결재 & 병렬합의자는 최소 2명 + 이상) |
+
| 처리구분 | +aplnStatsCode + | +String | +0 + | +미결(0), + 결재(1), 반려(2), 전결(3), 자동결재(5) | +
| 대리결재자여부 + | +prxAprYn + | +String | +N | ++ |
| 위임결재자EPID + | +dlgAprEpid + | +String | +M345615062623C988000 + | ++ |
| 전결권한여부 | +arbPmtYn | +String | +Y | ++ |
| 전결수행여부 + | +arbActYn + | +String | ++ | + | +
| 경로변경권한여부 + | +aplnMdfyPmtYn + | +String | +Y + | ++ | +
| 경로수정수행여부 + | +aplnMdfyActYn + | +String | ++ | + |
| 본문수정권한여부 + | +contentsMdfyPmtYn + | +String | +Y | ++ |
| 본문수정수행여부 + | +contentsMdfyActYn + | +String | ++ | ++ |
| 첨부파일정보 | +attachments + | +JSONList | ++ | ++ | +
| 첨부파일명 + | +attachfileName + | +JSON String + | +test.txt + | ++ | +
| 첨부파일사이즈 + | +attachfileSize + | +String | +140 + | +byte단위 + | +
| 순번 | +seq | +String | +0 | ++ | +
| 결재 ID + | +apId + | +String | +test1e1703024e9cbdd0e79569dbb458 + | ++ |
| Request | +Response | +
|---|
+ /approval/api/v2.0/approvals/TEST0000000000002120190514143359/detail
+
+ |
+
+ {
+ "result": "success",
+ "data": {
+ "contentsType": "TEXT",
+ "sbmDt": "20231004061200",
+ "sbmLang": "ko",
+ "apInfId": "TEST0000000000002120190514143359",
+ "systemId": "KCC98REST00008",
+ "notifyOption": "1",
+ "urgYn": "0",
+ "docSecuType": "PERSONAL",
+ "status": "1",
+ "timeZone": "GMT",
+ "subject": "Test application",
+ "aplns": [
+ {
+ "actPrssDt": "20231004061200",
+ "docOpenDt": null,
+ "docArvDt": "20231004061200",
+ "opinion": "",
+ "companyCode": "C98",
+ "companyName": "삼성 Intranet",
+ "departmentCode": "H66329",
+ "departmentName": "autotest",
+ "epId": "M071015062623C988403",
+ "emailAddress": "qtp03@stage.samsung.com",
+ "userId": null,
+ "name": "qtp03",
+ "jobPositionCode": "J2",
+ "jobPosition": "사원",
+ "subOrgCode": "C98S02",
+ "subOrgName": "개발총괄",
+ "seq": "0",
+ "role": "0",
+ "aplnStatsCode": "0",
+ "arbPmtYn": "Y",
+ "arbActYn": "N",
+ "rsrvSbmDt": null,
+ "subSeq": null,
+ "titleCode": "J2",
+ "titleName": "사원",
+ "dlgAprEpid": null,
+ "aplnMdfyPmtYn": "Y",
+ "prxAprYn": "N",
+ "contentsMdfyPmtYn": "Y",
+ "contentsMdfyActYn": "N",
+ "aplnMdfyActYn": "N"
+ },
+ {
+ "actPrssDt": "",
+ "docOpenDt": null,
+ "docArvDt": "20231004061200",
+ "opinion": "",
+ "companyCode": "C60",
+ "companyName": "삼성SDS",
+ "departmentCode": "V8TESTGROUP",
+ "departmentName": "V8 테스트그룹",
+ "epId": "M071015063405C983280",
+ "emailAddress": "qtp06@stage.samsung.com",
+ "userId": null,
+ "name": "qtp06",
+ "jobPositionCode": "G0H0",
+ "jobPosition": "자문역",
+ "subOrgCode": "ASIZE01",
+ "subOrgName": "첨부용량",
+ "seq": "1",
+ "role": "1",
+ "aplnStatsCode": "0",
+ "arbPmtYn": "Y",
+ "arbActYn": "N",
+ "rsrvSbmDt": null,
+ "subSeq": null,
+ "titleCode": "G0H0",
+ "titleName": "자문역",
+ "dlgAprEpid": null,
+ "aplnMdfyPmtYn": "Y",
+ "prxAprYn": "N",
+ "contentsMdfyPmtYn": "Y",
+ "contentsMdfyActYn": "N",
+ "aplnMdfyActYn": "N"
+ }
+ ],
+ "attachments": [
+ {
+ "seq": "0",
+ "attachfileName": "test.txt",
+ "attachfileSize": 23
+ }
+ ]
+ }
+}
+
+ |
+
Error Code
+| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 404 | +APE020 | +해당 연계 ID의 + 결재문서는 존재하지 않습니다. | ++ | +
/approval/api/v2.0/approvals/{apInfId}/content +
+결재 연계 ID를 이용하여 결재문서의 본문을 조회 할 수 있습니다.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +연계ID | +apInfId | +Y | +Path | +String | +TEST0000000000002120190523185902 + | +32자리의 고유 + 결재값 | +
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| API 호출 + 성공여부 | +result | +String | +success + | ++ |
| 결재본문정보 | +data | +JSON String + | ++ | + | +
| 본문종류 | +contentsType + | +String | +TEXT | +TEXT,HTML,MIME | +
| 결재본문 | +contents | +String | +TEST + | ++ |
| 결재연계ID | +apInfId | +String | +TEST1A000A11ACa02CVQ1A0CA4CA33C1 + | ++ |
| Request | +Response | +
|---|
+ /approval/api/v2.0/approvals/TEST0000000000002120190514143359/content ++ |
+
+ {
+ "result": "success",
+ "data": {
+ "contents": "test",
+ "contentType": "TEXT",
+ "apInfId": "TEST0000000000002120190521110026"
+ }
+}
+
+ |
+
Error Code
+| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 404 | +APE020 | +해당 연계 ID의 + 결재문서는 존재하지 않습니다. | ++ | +
/approval/api/v2.0/approvals/status
+결재 연계 ID를 이용하여 결재문서의 상황을 조회 할 수 있습니다.(최대 + 1000건)
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +연계 시스템 + ID | +System-ID | +Y | +Header | +String | +CXXREST0001 | ++ |
| 2 | +연계 ID + 리스트 | +apinfids | +Y | +Body | +JSONList | ++ | 최대 1000개 + | +
| 3 | +연계 + ID | +apinfid + | +Y | +Body | +String | ++ | 최대 + 1000개 | +
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| API 호출 + 성공여부 | +result | +String | +success + | ++ |
| 결재상세정보 | +data | +JSONList | ++ | + | +
| 결재연계ID | +apInfId | +String | +TEST1A000A11ACa02CVQ1A0CA4CA33C1 + | +리턴받은 결재 아이디를 + 이용하여, 상황조회 및 상신취소가 가능합니다. | +
| 문서변경횟수 | +docChgNum | +String | +0 + | ++ |
| 결재상태정보 | +status | +String | +1 | +암호화실패(-3),암호화중(-2), + 예약상신(-1),보류(0),진행중(1),완결(2),반려(3),상신취소(4),전결(5),후완결(6) | +
| Request | +Response | +
|---|
+ /approval/v2.0/approvals/status
+
+body:
+[
+{"apinfid":"TEST0000000000002120190521155428"},
+{"apinfid":"TEST0000000000002120190521155422"}
+]
+
+ |
+
+ {
+ "result": "success",
+ "data": [
+ {
+ "apInfId": "TEST0000000000002120190521155428",
+ "docChgNum": "0",
+ "status": "1"
+ },
+ {
+ "apInfId": "TEST0000000000002120190521155422",
+ "docChgNum": "1",
+ "status": "2"
+ }
+ ]
+}
+
+ |
+
Error Code
+| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 | +APE022 | +최대 1000개의 + 요청만 가능합니다. | ++ | +
/approval/api/v2.0/approvals/apinfids
+결재 ID를 이용하여 결재연계 ID를 조회 할 수 있습니다.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +연계 시스템 + ID | +System-ID | +Y | +Header | +String | +CXXREST0001 | ++ |
| 2 | +결재 ID + | +apId + | +Y | +Query | +String | +test1e1703024e9cbdd0e79569dbb458 + | ++ |
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| API 호출 + 성공여부 | +result | +String | +success + | ++ |
| 결재연계ID정보 | +data | +JSON String + | ++ | + | +
| 결재 ID + | +apId + | +String | +test1e1703024e9cbdd0e79569dbb458 + | ++ |
| 연계ID | +apInfId | +String | +TEST0000000000002120190523185902 + | +32자리의 고유 + 결재값 | +
| 연계 시스템 + ID | +systemId | +String | +CXXREST0001 | ++ |
| Request | +Response | +
|---|
+ /approval/api/v2.0/approvals/apinfids?apId=testd269bd3743ca8a0b4c0e7d9de5af ++ |
+
+ {
+ "result": "success",
+ "data": {
+ "apId": "test1e1703024e9cbdd0e79569dbb458",
+ "apInfId": "TEST0000000000002120190517133353",
+ "systemId": "C60REST0001"
+ }
+}
+
+ |
+
Error Code
+| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 | +APE001 | +데이터가 + 필요합니다. | ++ | +
| 404 | +APE021 | +해당 결재 ID의 + 결재문서는 존재하지 않습니다. | ++ | +
/approval/api/v2.0/approvals/submission
+요청 연계시스템ID로 연계 상신처리된 상신자의 상신함의 정보를 조회 할 수 + 있습니다.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +연계 시스템 + ID | +System-ID | +Y | +Header | +String | +CXXREST0001 | ++ |
| 2 | +EPID + | +epId + | +Y | +Query | +String | +M071015062623C9884 | +속성 한가지와 조합하여 사용 우선순위 userId > + epId > emailAddress |
+
| 3 | +사용자ID | +userId | +Y | +Query | +String | +qtp03 + | +속성 한가지와 조합하여 사용 우선순위 userId > + epId > emailAddress |
+
| 4 | +사용자이메일 | +emailAddress + | +Y | +Query | +String | +qtp03@stage.sasmung.com + | +속성 한가지와 조합하여 사용 우선순위 userId > + epId > emailAddress |
+
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| API 호출 + 성공여부 | +result | +String | +success + | ++ |
| 결재연계정보 + | +data | +JSONList | ++ | + | +
| 결재제목 | +subject | +String | +근태신청 + | ++ |
| 연계ID | +apInfId | +String | +TEST0000000000002120190523185902 + | +32자리의 고유 + 결재값 | +
| 결재관계자회사코드 + | +companyCode + | +String | +C98 | ++ |
| 결재관계자회사명 + | +companyName + | +String | +SAMSUNG + | ++ |
| 결재관계자총괄코드 + | +subOrgCode + | +String | +C98S01 | ++ |
| 결재관계자총괄명 + | +subOrgName + | +String | +개발총괄 | ++ |
| 결재관계자부서코드 + | +departmentCode + | +String | +C98S0201 + | ++ |
| 결재관계자부서명 + | +departmentName + | +String | +개발1팀 + | ++ |
| 결재관계자 + 직급코드 | +titleCode + | +String | +B3P1 | ++ | +
| 결재관계자 직급명 + | +titleName + | +String | +Engineer | ++ | +
| EPID + | +epId + | +String | +M071015062623C9884 | +속성 한가지와 조합하여 사용 우선순위 userId > + epId > emailAddress |
+
| 결재관계자 + 이름 | +name | +String | +qtp03 | ++ |
| 상신일시 + | +sbmDt + | +String | +20190524145033 | ++ |
| 결재상태정보 | +status | +String | +1 | +암호화실패(-3),암호화중(-2), + 예약상신(-1),보류(0),진행중(1),완결(2),반려(3),상신취소(4),전결(5),후완결(6) | +
| Request | +Response | +
|---|
+ /approval/api/v2.0/approvals/submission?epId=M071015062623C988403
+
+ |
+
+ {
+ "result": "success",
+ "data": [
+ {
+ "subject": "Test application",
+ "apInfId": "TEST0000000000002120190514143359",
+ "compCode": "C98",
+ "compName": "삼성 Intranet",
+ "deptCode": "H66329",
+ "deptName": "autotest",
+ "jobPosition": "사원",
+ "jobPositionCode": "J2",
+ "subOrgCode": "C98S02",
+ "subOrgName": "개발총괄",
+ "epId": "M071015062623C988403",
+ "name": "qtp03",
+ "sbmDt": "20231004061200",
+ "status": "1",
+ "companyCode": "C98",
+ "companyName": "삼성 Intranet",
+ "departmentCode": "H66329",
+ "departmentName": "autotest",
+ "titleName": "사원",
+ "titleCode": "J2"
+ },
+ {
+ "subject": "Test application",
+ "apInfId": "TEST0000000000002120190514143359",
+ "compCode": "C98",
+ "compName": "삼성 Intranet",
+ "deptCode": "H66329",
+ "deptName": "autotest",
+ "jobPosition": "사원",
+ "jobPositionCode": "J2",
+ "subOrgCode": "C98S02",
+ "subOrgName": "개발총괄",
+ "epId": "M071015062623C988403",
+ "name": "qtp03",
+ "sbmDt": "20231004061200",
+ "status": "1",
+ "companyCode": "C98",
+ "companyName": "삼성 Intranet",
+ "departmentCode": "H66329",
+ "departmentName": "autotest",
+ "titleName": "사원",
+ "titleCode": "J2"
+ }
+ ]
+}
+
+ |
+
Error Code
+| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 | +APE001 | +데이터가 + 필요합니다. | ++ | +
/approval/api/v2.0/approvals/apinfidinfos +
+요청 연계시스템ID에서 상신된 결재문서의 연계 이력을 조회 할 수 있습니다. 조회 + 기준일시 이하 조회 기간(분) 동안 호출 계정의 결재건 정보 리턴 (상신, 결재승인, 경로변경, 본문수정 등 결재건 처리 시)
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +연계 시스템 + ID | +System-ID | +Y | +Header | +String | +CXXREST0001 | ++ |
| 2 | +조회기준일시 | +endDate | +Y | +Query | +String | +201905211500 | +조회의 기준시간 해당 일자 이하로 조회 yyyyMMddHHmm + 형식 |
+
| 3 | +페이지번호 + | +page + | +N | +Query | +String | +1 | +paging 처리 + | +
| 4 | +조회기간 | +duration | +N | +Query | +String | +1 | +단위 : 분 / 최소 1분 ~ 최대 60분 default : + 1 |
+
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| API 호출 + 성공여부 | +result | +String | +success + | ++ |
| 순번 + | +seq + | +String | +1 | ++ |
| 결재연계정보 + | +data | +JSONList | ++ | + | +
| 순번 + | +seq + | +String | +1 | ++ |
| 연계ID | +apInfId | +String | +TEST0000000000002120190523185902 + | +32자리의 고유 + 결재값 | +
| 전체 데이터 + 개수 | +totalCount | +String | +2 + | ++ |
| 전체 페이지 + 개수 | +seq | +String | +1 + | ++ |
| 페이지번호 | +seq | +String | +1 + | ++ | +
| Request | +Response | +
|---|
+ /approval/v2.0/approvals/apinfidinfos?endDate=201905211500 ++ |
+
+ {
+ "result": "success",
+ "data": [{
+ "seq": 1,
+ "apInfId": "TEST0000000000002120190521155428",
+ "totalcount": 6,
+ "totalpage": 1,
+ "currentpage": 1
+ },
+ {
+ "seq": 2,
+ "apInfId": "TEST0000000000002220190521155428",
+ "totalcount": 6,
+ "totalpage": 1,
+ "currentpage": 1
+ },
+ {
+ "seq": 3,
+ "apInfId": "TEST0000000000002220190521155428",
+ "totalcount": 6,
+ "totalpage": 1,
+ "currentpage": 1
+ },
+ {
+ "seq": 4,
+ "apInfId": "TEST0000000000002120190521155759",
+ "totalcount": 6,
+ "totalpage": 1,
+ "currentpage": 1
+ },
+ {
+ "seq": 5,
+ "apInfId": "TEST0000000000002220190521155759",
+ "totalcount": 6,
+ "totalpage": 1,
+ "currentpage": 1
+ },
+ {
+ "seq": 6,
+ "apInfId": "TEST0000000000002220190521155759",
+ "totalcount": 6,
+ "totalpage": 1,
+ "currentpage": 1
+ }
+ ]
+}
+
+ |
+
Error Code
+| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 | +APE001 | +데이터가 + 필요합니다. | ++ | +
| 400 | +APE002 | +입력된 데이터 형식이 + 잘못되었습니다. | ++ | +
/approval/api/v2.0/approvals/{apInfId}/cancel
+연계 ID에 해당하는 결재문서를 상신취소처리 할 수 있습니다.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +연계ID | +apInfId | +Y | +Path | +String | +TEST0000000000002120190523185902 + | +32자리의 고유 + 결재값 | +
| 2 | +상신취소의견 | +opinion | +Y | +Query | +String | +상신취소드립니다 | ++ | +
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| API 호출 + 성공여부 | +result | +String | +success + | ++ |
| 결재연계ID정보 | +data | +JSON String + | ++ | + | +
| 결재연계ID | +apInfId | +String | +TEST1A000A11ACa02CVQ1A0CA4CA33C1 + | +리턴받은 결재 아이디를 + 이용하여, 상황조회 및 상신취소가 가능합니다. | +
| Request | +Response | +
|---|
+ /approval/api/v2.0/approvals/TEST0000000000002120190521110026/cancel?opinion=reject ++ |
+
+ {
+ "result": "success",
+ "data": {
+ "apInfId": "TEST0000000000002120190521110026"
+ }
+}
+
+ |
+
Error Code
+| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 | +APE001 | +데이터가 + 필요합니다. | ++ | +
| 400 | +APE002 | +입력된 데이터 형식이 + 잘못되었습니다. | ++ | +
| 404 | +APE020 | +해당 연계 ID의 + 결재문서는 존재하지 않습니다. | ++ | +
| 400 | +APE023 | +해당 결재 ID의 + 결재문서는 이미 완결 혹은 상신취소처리 되었습니다. | ++ | +
/approval/api/v2.0/approvals/ownaplnlist
+개인별 저장된 결재경로 목록을 조회 할 수 있습니다.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +연계 시스템 + ID | +System-ID | +Y | +Header | +String | +CXXREST0001 | ++ |
| 2 | +EPID + | +epId + | +N | +Query | +String | +M071015062623C9884 | +속성 한가지와 조합하여 사용 우선순위 userId > + epId > emailAddress |
+
| 3 | +사용자ID | +userId | +N | +Query | +String | +test | +속성 한가지와 조합하여 사용 우선순위 userId > + epId > emailAddress |
+
| 4 | +사용자이메일 + | +emailAddress + | +N | +Query | +String | +test@stage.samsung.com + | +속성 한가지와 조합하여 사용 우선순위 userId > + epId > emailAddress |
+
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 저장된 + 결재경로ID | +pslAplnId + | +String | +168cf04db4aa4e64b010f434d9088312 + | ++ |
| 저장된 + 결재경로이름 | +pslAplnNm + | +String | +TEST + | ++ |
| 등록자EPID + | +ownEpid + | +String | +M201026053604S204412 + | ++ |
| Request | +Response | +
|---|
+ /approval/api/v2.0/approvals/ownaplnlist?emailAddress=test@stage.samsung.com ++ |
+
+ {
+ "result": "success",
+ "data": [
+ {
+ "pslAplnId": "168cf04db4aa4e64b010f434d9088312",
+ "pslAplnNm": "TEST",
+ "ownEpid": "M201026053604S204412"
+ },
+ {
+ "pslAplnId": "876f1522d1e440288f5ad4fbda42d712",
+ "pslAplnNm": "TEST2",
+ "ownEpid": "M201026053604S204412"
+ }
+ ]
+}
+
+ |
+
Error Code
+| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 | +APE001 | +데이터가 + 필요합니다. | ++ | +
| 404 | +APE030 | +저장된 결재경로가 + 없습니다. | ++ | +
/approval/api/v2.0/approvals/{pslAplnId}/ownaplndetail +
+개인별 저장된 결재경로 목록을 조회 할 수 있습니다.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +연계 시스템 + ID | +System-ID | +Y | +Header | +String | +CXXREST0001 | ++ |
| 2 | +저장된 + 결재경로ID | +pslAplnId | +N | +Path | +String | +168cf04db4aa4e64b010f434d9088312 + | ++ |
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 저장된 + 결재경로ID | +pslAplnId + | +String | +168cf04db4aa4e64b010f434d9088312 + | ++ |
| EPID + | +epId + | +String | +M071015062623C9884 | +속성 한가지와 조합하여 사용 우선순위 userId > + epId > emailAddress |
+
| 순번 + | +seq + | +String | +1 | ++ |
| 설정구분 + | +role + | +String | +0 | +기안(0), 결재(1), 합의(2), 후결(3), 병렬합의(4), 병렬결재(7), 통보(9)
+ (후결자는 최대 1명, 병렬결재 & 병렬합의자는 최소 2명 + 이상) |
+
| 국문이름 | +fnm | +String | +test | ++ | +
| 영문이름 + | +enFnm + | +String | +OneTest + | ++ |
| 사용자이메일 + | +emailAddress + | +String | +test@stage.samsung.com + | +속성 한가지와 조합하여 사용 우선순위 userId > + epId > emailAddress |
+
| 사용자ID | +userId | +String | +test | +속성 한가지와 조합하여 사용 우선순위 userId > + epId > emailAddress |
+
| Request | +Response | +
|---|
+ /approval/api/v2.0/approvals/168cf04db4aa4e64b010f434d9088312/ownaplndetail ++ |
+
+ {
+ "result": "success",
+ "data": [
+ {
+ "pslAplnId": "168cf04db4aa4e64b010f434d9088312",
+ "epId": "M201026053604S204412",
+ "seq": "0",
+ "role": "0",
+ "fnm": "test",
+ "enFnm": "OneTest",
+ "emailAddress": "test@stage.samsung.com",
+ "userId": "test"
+ },
+ {
+ "pslAplnId": "168cf04db4aa4e64b010f434d9088312",
+ "epId": "M201026053604S204412",
+ "seq": "1",
+ "role": "1",
+ "fnm": "test2",
+ "enFnm": "TwoTest",
+ "emailAddress": "test2@stage.samsung.com",
+ "userId": "test2"
+ },
+ {
+ "pslAplnId": "168cf04db4aa4e64b010f434d9088312",
+ "epId": "M201026053604S204412",
+ "seq": "2",
+ "role": "1",
+ "fnm": "test3",
+ "enFnm": "ThreeTest",
+ "emailAddress": "test3@stage.samsung.com",
+ "userId": "test3"
+ }
+ ]
+}
+
+ |
+
Error Code
+| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 404 | +APE030 | +저장된 결재경로가 + 없습니다. | ++ | +
Knox Suite을 통한 임직원 및 조직 정보 조회 기능을 제공합니다.
+| API | +URI | +Method | +Description | +
|---|
Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type |
+ Data Type |
+ Sample Data | +Note | +
|---|
| 1 | +연계 아이디 | +System-ID | +Y | +Header | +String | +C60REST0001 | ++ |
| 2 | +회사코드 | +companyCode | +N | +Query | +String | +C60 | +3~10번 속성 + 중 1개의 속성만 사용 가능 | +
| 3 | +임직원 이름 | +fullName | +Y | +Query | +String | +김삼성 | +검색엔진 (검색 + 키워드 완전 일치 검색) | +
| 4 | +부서코드 | +departmentCode | +Query | +String | +C60AH959 | ++ | |
| 5 | +사번 | +employeeNumber | +Query | +String | +123123 | ++ | |
| 6 | +이름 | +name | +Query | +String | +삼성 | +검색엔진 (검색 + 키워드 부분일치 검색) | +|
| 7 | +epId | +epIds | +Query | +String | +D100118130308C600299 | ++ | |
| 8 | +ID | +userIds | +Query | +String | +knoxportal | ++ | |
| 9 | +메일주소 | +emailAddresses | +Query | +String | +knoxportal@samsung.com | ++ | |
| 10 | +직급코드 | +titleCode | +Query | +String | +B3K | +compCode, page 함께 받아야 + 함 | +|
| 11 | +페이지 번호 | +page | +N | +Query | +String | +1 | +- companyCode&departmentCode / companyCode&title / name 인 + 경우에만 paging 적용가능 - page 입력 시 500건씩 + 조회 - page 미입력 시 최대 2000건 조회 |
+
| 12 | +검색결과 타입 | +resultType | +Y | +Body | +String | +basic optional |
+ - basic : 기본 속성 리턴 - optional : + attributes 정의 속성만 리턴 |
+
| 13 | +조회할 임직원 속성 | +attributes | +N | +Body | +String | +["emailAddress","userId"] + | +지정한 속성에
+ 대해서만 결과 값 리턴 resultType이 optional인 경우 + 필수 |
+
Response Parameter
+| No. | +Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +API 호출 성공 여부 | +result | +String | +success fail |
+ + |
| 2 | +현재 페이지 | +currentPage | +int | +1 | ++ |
| 3 | +총 결과 페이지 수 | +totalPage | +int | +3 | ++ |
| 4 | +검색된 임직원의 수 | +totalCount | +int | +30 | ++ |
| 5 | +임직원 정보 | +employees | +JSON String | ++ | + |
| 6 | +계정신청상태 | +accountStatus | +String | +A | +A: 아이디 승인 W: 아이디 + 신청 M: 아이디 미발급 |
+
| 7 | +사업장코드 | +busiCode | +String | +C60B0001 | ++ |
| 8 | +사업장명 | +busiName | +String | +잠실동관 | ++ |
| 9 | +회사코드 * | +companyCode | +String | +C60 | ++ |
| 10 | +회사명 * | +companyName | +String | +삼성SDS | ++ |
| 11 | +국가 | +country | +String | +KR | ++ |
| 12 | +기본소속구분코드 | +defaultCompanyCode | +String | +O | +O: 원소속 S: 파견소속 |
+
| 13 | +부서코드 * | +departmentCode | +String | +C60AH959 | ++ |
| 14 | +부서명 * | +departmentName | +String | +Knox개발그룹(솔루션개발) | ++ |
| 15 | +담당업무 * | +description | +String | +Knox Suite + 개발 | ++ |
| 16 | +이메일 + 주소 * | +emailAddress | +String | +knoxportal@samsung.com | ++ |
| 17 | +사번 * | +employeeNumber | +String | +123123 | ++ |
| 18 | +임직원 + 상태 * | +employeeStatus | +String | +B | +B: 재직 V: 휴직 |
+
| 19 | +임직원 + 구분 | +employeeType | +String | +N | +N:정규직 (@samsung.com) U:협력직 C:자회사 + T:임시직 (@partner.samsung.com) X:협력직 Y:자회사 Z:임시직 + (@samsung.com) |
+
| 20 | +영문 + 사업장명 | +enBusiName | +String | +SDS East Campus | ++ |
| 21 | +영문 + 회사명 * | +enCompanyName | +String | +SAMSUNG SDS | ++ |
| 22 | +영문 + 부서명 * | +enDepartmentName | +String | +Knox Development Group | ++ |
| 23 | +영문 + 담당업무 * | +enDiscription | +String | +Knox Portal User Mgmt. | ++ |
| 24 | +영문 + 성명 * | +enFullName | +String | +Samsung Kim | ++ |
| 25 | +영문 + 이름 * | +enGivenName | +String | +Samsung | ++ |
| 26 | +영문 + 직위명 * | +enGradeName | +String | +Manager | ++ |
| 27 | +영문 + 회사주소 | +enOfficeAddress | +String | +123, Olympic-ro 35-gil, Songpa | +우편번호로 + 구분되는 회사주소 | +
| 28 | +영문 + 지역명 | +enRegionName | +String | +Jamsil | ++ |
| 29 | +영문 파견 + 사업장명 | +enSendBusiName | +String | +Jamsil | ++ |
| 30 | +영문 파견 + 회사명 | +enSendCompanyName | +String | +Samsung Electronics | ++ |
| 31 | +영문 파견 + 부서명 | +enSendDepartmentName | +String | +IT Service | ++ |
| 32 | +영문 파견 + 직위명 | +enSendGradeName | +String | +Lab Leader | ++ |
| 33 | +영문 파견 + 지역명 | +enSendRegionName | +String | +Suwon | ++ |
| 34 | +영문 파견 + 총괄명 | +enSendSubOrgName | +String | ++ | + |
| 35 | +영문 파견 + 직급명 | +enSendTitleName | +String | +E5 | ++ |
| 36 | +영문 + 성 * | +enSirName | +String | +Kim | ++ |
| 37 | +영문 + 총괄명 | +enSubOrgName | +String | ++ | + |
| 38 | +영문 + 직급명 * | +enTitleName | +String | +Senior Engineer | ++ |
| 39 | +epId * | +epId | +String | +D100118130308C600299 | ++ |
| 40 | +임원여부 | +executiveYn | +String | +N | +Y: 임원 N: 직원 |
+
| 41 | +외부 + 메일주소 | +externalEmailAddress | +String | +knoxportal@gmail.com | ++ |
| 42 | +성명 * | +fullName | +String | +김삼성 | ++ |
| 43 | +이름 * | +givenName | +String | +삼성 | ++ |
| 44 | +직위명 * | +gradeName | +String | +책임 | ++ |
| 45 | +직위직급 + 표시코드 * | +gradeTitleIndiCode | +String | +B | +G: 직위 T: 직급 B: 직위/직급 모두 |
+
| 46 | +내부 + 부서코드 | +inDepartmentCode | +String | +RE_KO41 | ++ |
| 47 | +내부 + 부서명 | +inDepartmentName | +String | +Samsung Research | ++ |
| 48 | +직무명 * | +jobName | +String | +AEB | ++ |
| 49 | +직무코드 | +jobCode | +String | +SystemS/W | ++ |
| 50 | +현채인 + 여부 | +localStaffYn | +String | +N | +Y: 현채인 N: 현채인 아님 + |
+
| 51 | +핸드폰 | +mobile | +String | ++82-10-1111-2222 | ++ |
| 52 | +닉네임 | +nickName | +String | +nick | ++ |
| 53 | +근무지 + 주소 | +officeAddress | +String | +송파구 올림픽로35길 + 123 | ++ |
| 54 | +근무지 상세 + 주소 | +officeDetailAddress | +String | +동관 19층 + | +상세 + 회사주소 | +
| 55 | +근무지 + 팩스번호 | +officeFaxNumber | +String | ++82-2-2255-1999 | ++ |
| 56 | +근무지 + 우편번호 | +officeZipCode | +String | +138-240 | ++ |
| 57 | +근무지 + 전화번호 | +officeTelNumber | +String | +82-70-9999-9999 | ++ |
| 58 | +선호언어 | +preferredLanguage | +String | +ko | ++ |
| 59 | +실명 + 여부 * | +realNameYn | +String | +R | +R:실명 V:가명 |
+
| 60 | +지역코드 | +regionCode | +String | ++ | + |
| 61 | +지역명 | +regionName | +String | ++ | + |
| 62 | +보안등급 * | +securityLevel | +String | +5 | +1:회장단(회장,부회장,비서실장) 2:사장단(사장,부사장,전무) 3:임원진(상무,이사,고문,감사) 4:간부(부,차,과장) 5:사원(대리,사원) 9:협력사 + 임직원 |
+
| 63 | +파견 + 사업장코드 | +sendBusiCde | +String | ++ | + |
| 64 | +파견 + 회사코드 | +sendCompanyCode | +String | +C10 | ++ |
| 65 | +파견 + 회사명 | +sendCompanyName | +String | +삼성전자 | ++ |
| 66 | +파견 + 부서코드 | +sendDepartmentCode | +String | +C10CB04CB040060 | ++ |
| 67 | +파견 + 부서명 | +sendDepartmentName | +String | +IT Services | ++ |
| 68 | +파견 + 직위명 | +sendGradeName | +String | ++ | + |
| 69 | +파견 + 직위직급 표시코드 | +sendGradeTitleIndiCode | +String | ++ | + |
| 70 | +파견 + 지역코드 | +sendRegionCode | +String | ++ | + |
| 71 | +파견 + 보안등급 | +sendSecurityLevel | +String | +5 | +1:회장단(회장,부회장,비서실장) 2:사장단(사장,부사장,전무) 3:임원진(상무,이사,고문,감사) 4:간부(부,차,과장) 5:사원(대리,사원) 9:협력사 + 임직원 |
+
| 72 | +파견 + 총괄코드 | +sendSubOrgCode | +String | ++ | + |
| 73 | +파견 + 총괄명 | +sendSubOrgName | +String | ++ | + |
| 74 | +파견 + 직급명 | +sendTitleName | +String | +책임 | ++ |
| 75 | +파견 + 직급코드 | +sendTitleCode | +String | +E5 | ++ |
| 76 | +파견 직급 + 정렬 순서 | +sendTitleSortOrder | +String | +309 | ++ |
| 77 | +거점 * | +serverLocation | +String | +KR | +KR: 한국 GB: 구주 US: 미주 |
+
| 78 | +성 * | +sirName | +String | +김 | ++ |
| 79 | +총괄코드 | +subOrgCode | +String | ++ | + |
| 80 | +총괄명 | +subOrgName | +String | ++ | + |
| 81 | +직급명 * | +titleName | +String | +책임 | ++ |
| 82 | +직급코드 * | +titleCode | +String | +B2K | ++ |
| 83 | +직급정렬순서 * | +titleSortOrder | +String | +54 | ++ |
| 84 | +고유코드 | +openCode | +String | ++ | + |
| 85 | +로그인 + 아이디 * | +userId | +String | +knoxportal | ++ |
| 86 | +인터넷 + 전화번호 | +voipNumber | +String | ++ | + |
| 87 | +퇴직/휴직일 | +withdrawDate | +String | ++ | + |
| 88 | +ID + 유효기간 | +epIdExpiryDate | +String | +20201231 | ++ |
| 89 | +타임존 | +timeZone | +String | +Asia/Seoul | +이름으로 검색 + 시에는 제공하지 않음 | +
Sample
+| Request | +Response | +
|---|
+ (1)
+ |
+
+ (1)+ |
+
Error Code
+| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 | +EM0001 | +Search request with more than 100 list can not be proceeded. | +조회건수 100건 초과하여 에러 발생. + Parameter 추가하여 조회 건수 축소 | +
| 400 | +EM0004 | +Please insert the search keyword. | +Parameter 누락 확인 + | +
| 400 | +EM0005 | +Search keyword length is not valid. | +Parameter 길이 확인 + | +
| 400 | +EM0006 | +Search keyword should be no longer than 100 characters. | +Parameter 길이 100자 이하로 + 작성 | +
| 400 | +EM0007 | +Search keyword can not include the caracter. | +Parameter에 *, % 이 포함되어 + 있는지 확인 | +
| 500 | +EM0010 | +EPWebservice.{} Abnormal. | +Parameter 누락 또는 잘못된 + 형식인지 확인 | +
| 400 | +EM0014 | +Please enter {} as required. | +{} 필수값 누락 | +
| 400 | +EM0015 | +Please enter {} according to the specified format. | +잘못된 형식으로 인한 오류 + | +
| 400 | +EM0016 | +Only one of {} can be selected. | +{} 중 한 개만 선택하여 검색 + 가능 | +
| 400 | +EM0017 | +For the requested search conditions, paging is not possible. | +페이징 지원 불가 | +
| 400 | +EM0018 | +Please remove the {} keyword from the requested search conditions and try + again. | +요청한 검색조건 중, {} 조건 제거 후 + 다시 시도 바랍니다. | +
Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type |
+ Data Type |
+ Sample Data | +Note | +
|---|
| 1 | +연계 아이디 | +System-ID | +Y | +Header | +String | +C60REST0001 | ++ |
| 2 | +회사코드 | +companyCode | +Y | +Query | +String | +C60 | +2번 항목 단독 검색 또는 3~5번 항목 중 하나와 결합하여 + 검색 |
+
| 3 | +상위부서코드 | +uprDepartmentCode | +N | +Query | +String | +C60AI572 | +companyCode 쿼리와 함께
+ 사용 (3~5번 중 한 가지만 선택 가능) + |
+
| 4 | +부서코드 | +departmentCode | +Query | +String | +C60AH959 | +companyCode 쿼리와 함께 사용 + | +|
| 5 | +부서명 | +departmentName | +Query | +String | +123123 | +companyCode 쿼리와 함께 사용 + | +|
| 6 | +페이지 번호 | +page | +N | +Query | +String | +1 | +companyCode로만 조회하는 경우에만 paging + 적용가능 page 입력 시 500건씩 조회 page 입력하지 않을 경우 최대 2,000건 조회 (companyCode로만 검색 시 + 필수) |
+
Response Parameter
+| No. | +Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +API 호출 성공 여부 | +result | +String | +success fail |
+ + |
| 2 | +현재 페이지 | +currentPage | +int | +1 | ++ |
| 3 | +총 결과 페이지 수 | +totalPage | +int | +3 | ++ |
| 4 | +검색된 조직정보의 수 | +totalCount | +int | +30 | ++ |
| 5 | +조직 정보 리스트 | +organizations | +JSON String | ++ | + |
| 6 | +회사코드 * | +companyCode | +string | +C60 | ++ |
| 7 | +회사명 * | +companyName | +string | +삼성SDS | ++ |
| 8 | +부서코드 * | +departmentCode | +string | +C60AH959 | ++ |
| 9 | +부서레벨 | +departmentLevel | +string | +3 | ++ |
| 10 | +부서명 * | +departmentName | +string | +Knox개발그룹(솔루션개발) | ++ |
| 11 | +부서간 + 순위 | +departmentOrder | +string | +2 | ++ |
| 12 | +영문 + 회사명 * | +enCompanyName | +string | +SAMSUNG SDS | ++ |
| 13 | +영문 + 부서명 * | +enDepartmentName | +string | +Knox Development Group | ++ |
| 14 | +영문 부서장 + 직급 | +enManagerTitle | +string | +Principal Engineer/Group Leader | ++ |
| 15 | +영문 + 총괄명 * | +enSubOrgCode | +string | ++ | + |
| 16 | +내부부서 + 코드 * | +inDepartmentCode | +string | ++ | + |
| 17 | +하위 + 부서존재 유무 | +lowDepartmentYn | +string | +T | +T: 존재함 F: 존재하지 않음 + |
+
| 18 | +부서장 + 아이디 | +managerId | +string | +kch.jung | ++ |
| 19 | +부서장 + 성명 | +managerName | +string | +정기철 | ++ |
| 20 | +부서장 + 직급 | +managerTitle | +string | +Principal + Engineer/그룹장(Sr. SCP) | ++ |
| 21 | +표현언어 * | +preferredLanguage | +string | +ko | ++ |
| 22 | +총괄코드 * | +subOrgCode | +string | ++ | + |
| 23 | +총괄명 * | +subOrgName | +string | ++ | + |
| 24 | +상위 + 부서코드 | +uprDepartmentCode | +string | +C60AJ336 | ++ |
| 25 | +영문 상위 + 부서명 | +enUprDepartmentName | +string | +Solution Development Team | ++ |
| 26 | +상위 + 부서명 | +uprDepartmentName | +string | +솔루션개발팀 + | ++ |
| 27 | +부서 숨김 + 여부 | +hiddenDepartmentYn | +string | +F | +T: 비노출 F: 노출 |
+
| 28 | +법인코드 | +corpCode | +string | +A001 | ++ |
| 29 | +법인명 | +corpName | +string | +영국법인 | ++ |
| 30 | +영문법인명 | +enCorpName | +string | +UK CORP + | ++ |
Sample
+| Request | +Response | +
|---|
+ /organizations?companyCode=C60&departmentCode=C60AH959
+
+ |
+
+ {
+ |
+
Error Code
+| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 | +ORG0003 | +Please insert the search keyword. | +Parameter 확인 + | +
| 400 | +ORG0004 | +Search keyword must be larger than 4 bytes. | +Parameter 길이 4자 이상으로 + 작성 | +
| 400 | +ORG0005 | +Search keyword should be no longer than 100 characters. | +Parameter 길이 100자 이내로 + 작성 | +
| 400 | +ORG0006 | +Search keyword can not include the caracter. | +Parameter에 *, % 이 포함되어 + 있는지 확인 | +
| 500 | +ORG0010 | +ORGWebservice. {} Abnormal. | +Parameter 누락 또는 잘못된 + 형식인지 확인 | +
| 400 | +ORG0011 | +Please enter {} as required. | +{} 필수값 누락 | +
| 400 | +ORG0012 | +Please enter {} according to the specified format. | +잘못된 형식으로 인한 오류 + | +
| 400 | +ORG0013 | +Only one of {} can be selected. | +{} 중 한 개만 선택하여 검색 + 가능 | +
| 400 | +ORG0014 | +For the requested search conditions, paging is not possible. | +페이징 지원 불가 | +
Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +연계 아이디 | +System-ID | +Y | +Header | +String | +C60REST0001 | ++ |
| 2 | +회사코드 | +companyCode | +Y | +Query | +String | +C60 | ++ |
Response Parameter
+| No. | +Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +API 호출 성공 여부 + | +result | +String | +success fail |
+ + |
| 2 | +직급정보 배열 | +titles | +JSON String | ++ | + |
| 3 | +회사코드 | +companyCode | +String | +C60 | ++ |
| 4 | +직급코드 | +titleCode | +String | +B3K | ++ |
| 5 | +직급명 | +titleName | +String | +책임 | ++ |
| 6 | +영문직급명 | +enTitleName | +String | +Senior Engineer | ++ |
| 7 | +직급정렬 + 순서 | +sortOrder | +String | +1 | ++ |
Sample
+| Request | +Response | +
|---|
+ /titles?companyCode=C60
+
+ |
+
+ {
+ |
+
Error Code
+| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 | +ORG0003 | +Please insert the search keyword. | +Parameter 확인 + | +
| 400 | +ORG0005 | +Search keyword should be no longer than 100 characters. | +Parameter 길이 100자 이내로 + 작성 | +
| 400 | +ORG0006 | +Search keyword can not include the caracter. | +Parameter에 *, % 이 포함되어 + 있는지 확인 | +
| 500 | +ORG0010 | +ORGWebservice. {} Abnormal. | +Parameter 누락 또는 잘못된 + 형식인지 확인 | +
메일 연계 API 이용을 위한 상세 개발 가이드입니다.
메일 API는 메일 발신, 발신 취소, 상태 조회 세 가지 유형으로 나누어져 있습니다.
| API | +URI | +Method | +Description | +
|---|
| 일반 메일 + 발신 | +/mail/api/v2.0/mails/send?userId=Knox아이디 + | +POST | +Knox 메일을 + 발신한다. | +
| 대외비 + 메일 발신 | +/mail/api/v2.0/mails/secu-send?userId=Knox아이디 + | +POST | +Knox 대외비 메일을 + 발신한다. | +
| 메일 발신 + 취소 | +/mail/api/v2.0/mails/{mailId}/cancel?userId=Knox아이디 + | +POST | +Knox 내부로 발신한 메일을 + 발신 취소한다. | +
| 메일 별 수신상태 조회 + | +/mail/api/v2.0/mails/deliverystatus/count?userId=Knox아이디 + | +POST | +해당하는 + 메일에 대해서 전체 수신 상태를 조회한다. | +
| 수신인 별 수신상태 조회 | +/mail/api/v2.0/mails/{mailId}/deliverystatus?userId=Knox아이디 + | +GET | +해당하는 메일에 + 대해서 수신인 별 수신 상태를 조회한다. | +
/mail/api/v2.0/mails/send?userId=Knox아이디
+삼성 그룹사 임직원 뿐만 아니라 외부수신인을 포함하여 메일 발신이 가능하며, 발신된 메일을 발신함에 + 저장됩니다.
+주 1. 발신자의 메일>환경설정> 발신메일저장옵션에 따라 다를 수 있습니다.
+주 2. Multipart/form-data 구성시 아래 Sample Request 와 같이 각 파트를 + 구분하여 form-data 의 name 값을 ‘mail’ , ‘attachments’ 로 호출해야 합니다.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +연계 시스템 + 아이디 | +System-ID | +Y | +Header | +String | +C60LD0001 + | ++ |
| 2 | +유저 아이디 + | +userId + | +Y | +Query | +String | +knoxportal + | ++ |
| 3 | +메일 제목 + | +subject + | +Y | +Body | +String | +메일 제목입니다. + | ++ |
| 4 | +문서 + 타입 | +docSecuType | +Y | +Body | +String | +PERSONAL + | +1) PERSONAL : 개인 2) OFFICIAL : + 공문 |
+
| 5 | +메일 본문 + | +contents + | +Y | +Body | +String | +안녕하세요, 테스트 + 메일입니다. | ++ |
| 6 | +컨텐츠 + 타입 | +contentType | +Y | +Body | +String | +TEXT + | +1) TEXT : 텍스트 2) MIME : + 마임 3) HTML : HTML |
+
| 7 | +발신인 | +sender + | +Y | +Body | +JSON Object | ++ | + |
| 8 | +발신인 + 이메일 | +emailAddress | +Y | +Body | +String | +knoxportal@samsung.com + | +1) 운영 환경 : knoxportal@samsung.com 2) 스테이지 환경 : knoxportal@stage.samsung.com |
+
| 9 | +수신인 + | +recipients | +Y | +Body | +JSON List | ++ | + |
| 10 | +수신인 + 이메일 | +emailAddress + | +Y | +Body | +String | +knoxportal@samsung.com + | +1) 운영 환경 : knoxportal@samsung.com 2) 스테이지 환경 : knoxportal@stage.samsung.com |
+
| 11 | +수신 + 타입 | +recipientType | +Y | +Body | +String | +TO + | +1) 수신 : TO 2) 참조 : + CC 3) 비밀참조 : BCC |
+
| 12 | +첨부 + 파일 | +attachments | +N | +Body | +multipart/form-data + | +multipart/form-data로 변환된 바이너리 + 파일 및 파일명 | ++ |
| 13 | +예약 + 발신 | +reservedTime | +N | +Body | +String | +yyyy-MM-dd HH:mm ex)"2023-10-25 + 15:00" |
+ 10분 단위 설정 + | +
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| API 호출 성공 + 여부 | +result + | +String | +success | ++ |
| 메일 아이디 + | +mailId + | +String | +20190409043651epcms1s110a09b3ca1b6c8d754ee1c28a182d8d5 + | ++ |
Sample
+| Request | +Response | +
|---|
| /mail/api/v2.0/mails/send?userId=knoxportal body : Content-Disposition: form-data; name="mail" { "subject" : + "EMAIL SUBJECT (이메일 제목)", "contents" : "EMAIL BODY (이메일 + 본문)", "contentType" : + "TEXT", "docSecuType" : + "PERSONAL", "sender" + : { "emailAddress" + : "knoxportal@samsung.com" }, "recipients" : [ { "emailAddress" + : "knoxportal@samsung.com", "recipientType" + : "TO" } ] } Content-Disposition: form-data; + name="attachments"; filename="db변경.JPG" Content-Type: image/jpeg Content-Disposition: form-data; name="attachments"; filename="2 - + 복사본 (2).jpg" Content-Type: + image/jpeg |
+ { "mailId": + "20190531015540hdp_101d2782e07bbad98034606076da1e299b05", "result": "success" } |
+
| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 | +ML1001 | +필수값 중 입력되지 않은 값이 있습니다. + | +모든 필수값이 + 입력되었는지 확인이 필요합니다. 또, 에러 메시지에 null인 parameter 명이 리턴된다면, 해당 값을 우선적으로 확인해야 합니다. | +
| 400 | +ML1002 | +사용자 정보가 존재하지 않습니다. | +호출 시 입력하는 + URI 상의 Knox Id, 혹은 메일 발신자 knox 이메일 addresss가 정상적인지 확인이 필요합니다. | +
| 400 | +ML1104 | +일반 메일 발신 중 docSecuType 값이 유효하지 + 않습니다. | +일반 메일의 + docSecuType은 PERSONAL(개인), OFFICIAL(공문) 두 값만 허용됩니다. | +
| 400 | +ML1112 | +메일 제목 크기가 300 bytes를 + 초과하였습니다. | +제목의 사이즈 확인이 + 필요합니다. | +
| 400 | +ML1114 | +메일 발신 API에서 허용되는 content 크기를 + 초과하였습니다. | +발신 API에서 본문 + 사이즈는 최대 1mb까지 입력이 가능합니다. 해당 크기를 초과하는 내용에 대해서는 가급적 첨부 파일 등을 이용 부탁드립니다. | +
| 400 | +ML1115 | +일반 메일 contentType 값이 유효하지 + 않습니다 | +일반 메일의 + contentType 값은 HTML, MIME, TEXT 세 개의 값만 허용됩니다. | +
| 400 | +ML1117 | +메일 발신 API에서 발신가능한 최대 수신인을 + 초과하였습니다. | +입력 가능한 최대 + 수신인 수는 100명입니다. | +
| 400 | +ML1118 | +수신자의 수신 타입이 잘못 설정되었습니다. + | +수신 타입은 + TO(수신), CC(참조), BCC(비밀참조) 세 개의 값만 허용됩니다. | +
| 403 | +ML1102 | +첨부 파일 처리 중 에러가 발생했습니다. + | +첨부 파일의 + Multipart/form-data 형식 확인이 필요합니다. | +
| 400 | +CO400 | +잘못된 요청입니다. | +요청 파라미터를 + 확인해주세요. 특히 userId, docSecuType 이 누락되었는지 확인해주세요. | +
/mail/api/v2.0/mails/secu-send?userId=Knox아이디
+대외비, 극비로 설정하여 보안 메일을 발송할 수 있습니다.
보안 메일 옵션을 설정할 수 있습니다.
Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +연계 시스템 + 아이디 | +System-ID | +Y | +Header | +String | +C60LD0001 + | ++ |
| 2 | +유저 아이디 + | +userId + | +Y | +Query | +String | +knoxportal + | ++ |
| 3 | +메일 제목 + | +subject + | +Y | +Body | +String | +메일 제목입니다. + | ++ |
| 4 | +문서 + 타입 | +docSecuType | +Y | +Body | +String | +PERSONAL + | +1) PERSONAL : 개인 2) OFFICIAL : + 공문 |
+
| 5 | +메일 본문 + | +contents + | +Y | +Body | +String | +안녕하세요, 테스트 + 메일입니다. | ++ |
| 6 | +컨텐츠 + 타입 | +contentType | +Y | +Body | +String | +TEXT | +1) TEXT : 텍스트 2) MIME : + 마임 3) HTML : HTML |
+
| 7 | +발신인 | +sender + | +Y | +Body | +JSON Object | ++ | + |
| 8 | +발신인 + 이메일 | +emailAddress | +Y | +Body | +String | +knoxportal@samsung.com + | +1) 운영 환경 : knoxportal@samsung.com 2) 스테이지 환경 : knoxportal@stage.samsung.com |
+
| 9 | +수신인 + | +recipients | +Y | +Body | +JSON List | ++ | + |
| 10 | +수신인 + 이메일 | +emailAddress + | +Y | +Body | +String | +knoxportal@samsung.com + | +1) 운영 환경 : knoxportal@samsung.com 2) 스테이지 환경 : knoxportal@stage.samsung.com |
+
| 11 | +수신 + 타입 | +recipientType | +Y | +Body | +String | +TO + | +1) 수신 : TO 2) 참조 : + CC 3) 비밀참조 : BCC |
+
| 12 | +첨부 + 파일 | +attachments | +N | +Body | +multipart/form-data + | +multipart/form-data로 변환된 바이너리 + 파일 및 파일명 | ++ |
| 13 | +대외비 옵션 + | +drmOption | +Y | +JSON Object | +String | ++ | + |
| 14 | +대외비 메일 조회 가능 + 일 수 | +validDays | +Y | +Body | +String | +3 | ++ |
| 15 | +대외비 개봉 가능 + 횟수 | +useCount + | +Y | +Body | +String | +3 | ++ |
| 16 | +대외비 수신인 조회 가능 + 여부 | +canView + | +Y | +Body | +String | +0 | ++ |
| 17 | +대외비 인쇄 가능 + 여부 | +canPrint + | +Y | +Body | +String | +0 | ++ |
| 18 | +대외비 + 외부 수신인의 개봉 알림 여부 | +notifyExternalUser + | +Y | +Body | +String | +0 + | ++ | +
| 19 | +대외비 + 내부 수신인의 개봉 알림 여부 | +notifyInternalUser + | +Y | +Body | +String | +0 + | ++ | +
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| API 호출 성공 + 여부 | +result + | +String | +success | ++ |
| mailId + | +메일 아이디 + | +String | +20190409043651epcms1s110a09b3ca1b6c8d754ee1c28a182d8d5 + | ++ |
Sample
+| Request | +Response | +
|---|
| /mail/api/v2.0/mails/send?userId=knoxportal body : Content-Disposition: form-data; name="mail" { "subject" : + "EMAIL SUBJECT (이메일 제목)", "contents" : "EMAIL BODY (이메일 + 본문)", "contentType" : + "TEXT", "docSecuType" : + "PERSONAL", "sender" + : { "emailAddress" + : "knoxportal@samsung.com" }, "recipients" : [ { "emailAddress" + : "knoxportal@samsung.com", "recipientType" + : "TO" } ], "drmOption" : { "validDays":"3", "useCount":"3", "canView":"0", "canPrint":"0", "notifyExternalUser":"0", "notifyInternalUser":"0" } } Content-Disposition: form-data; + name="attachments"; filename="db변경.JPG" Content-Type: image/jpeg Content-Disposition: form-data; name="attachments"; filename="2 - + 복사본 (2).jpg" Content-Type: + image/jpeg |
+ { "mailId": + "20190531015540hdp_101d2782e07bbad98034606076da1e299b05", "result": "success" } |
+
| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 | +ML1001 | +필수값 중 입력되지 않은 값이 있습니다. + | +모든 필수값이 + 입력되었는지 확인이 필요합니다. 또, 에러 메시지에 null인 parameter 명이 리턴된다면, 해당 값을 우선적으로 확인해야 합니다. | +
| 400 | +ML1002 | +사용자 정보가 존재하지 않습니다. | +호출 시 입력하는 + URI 상의 Knox Id, 혹은 메일 발신자 knox 이메일 addresss가 정상적인지 확인이 필요합니다. | +
| 400 | +ML1101 | +본문 (content) 값이 입력되지 + 않았습니다. | +메일 발신 관련 + API에서 본문 (content) 값이 정상적으로 입력되었는지 확인이 필요합니다. | +
| 400 | +ML1107 | +대외비/극비 보안 옵션 값이 유효하지 않습니다. 옵션 + 값을 확인해주세요. | +대외비/극비의 보안 + 옵션 설정 유효 값을 가이드를 통해 확인 후 입력이 필요합니다. | +
| 400 | +ML1108 | +대외비/극비 메일 contentType 값이 유효하지 + 않습니다. | +대외비/극비 메일에서 + contentType은 HTML과 TEXT 타입만 허용됩니다. | +
| 400 | +ML1109 | +대외비/극비 메일 docSecuType 값이 유효하지 + 않습니다. | +대외비/극비 메일의 + docSecuType은 CONFIDENTIAL(대외비), CONFIDENTIAL_STRICT(극비) 두 값만 허용됩니다. | +
| 400 | +ML1110 | +극비 메일일 경우에는 내부 수신인에게만 메일 발신이 + 가능합니다. | +외부 수신인 혹은 + 유효하지 않은 Knox 이메일 계정이 수신인에 포함되지 않았는지 확인이 필요합니다. | +
| 400 | +ML1111 | +대외비/극비 메일에서 허용되지 않는 첨부 파일의 + 확장자가 있습니다. | +txt, doc, + ppt, xls, pdf, jpg, jpeg, gif, bmp, docx, pptx, xlsx, mht, gul 확장자만 허용됩니다. | +
| 400 | +ML1112 | +메일 제목 크기가 300 bytes를 + 초과하였습니다. | +제목의 사이즈 확인이 + 필요합니다. | +
| 400 | +ML1114 | +메일 발신 API에서 허용되는 content 크기를 + 초과하였습니다. | +발신 API에서 본문 + 사이즈는 최대 1mb까지 입력이 가능합니다. 해당 크기를 초과하는 내용에 대해서는 가급적 첨부 파일 등을 이용 부탁드립니다. | +
| 400 | +ML1117 | +메일 발신 API에서 발신가능한 최대 수신인을 + 초과하였습니다. | +입력 가능한 최대 + 수신인 수는 100명입니다. | +
| 400 | +ML1118 | +수신자의 수신 타입이 잘못 설정되었습니다. + | +수신 타입은 + TO(수신), CC(참조), BCC(비밀참조) 세 개의 값만 허용됩니다. | +
| 403 | +ML1102 | +첨부 파일 처리 중 에러가 발생했습니다. + | +첨부 파일의 + Multipart/form-data 형식 확인이 필요합니다. | +
/mail/api/v2.0/mails/{mailId}/cancel?userId=Knox아이디 +
+Knox 사용자가 발신한 메일을, 수신자의 수신 메일함에서 삭제하는
+ 기능입니다.
(주) Knox 외부로 보낸 메일에 대해서는 발신 취소가
+ 불가능합니다.
Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +연계 시스템 + 아이디 | +System-ID | +Y | +Header | +String | +C60LD0001 + | ++ |
| 2 | +메일 아이디 + | +{mailId} + | +Y | +Path | +String | +20190623111845epcms1v2dd0e6bfd951d8f03bd75cd90afacdf8a + | +발신된 모든 메일은 메일아이디라는 고유값을 가지며, 메일 발신이 성공하면 메일아이디를 전달받습니다.
+ 전달받은 메일아이디를 활용하여 발신취소 또는 수신상황 조회를 할 수 + 있습니다. |
+
| 3 | +유저 아이디 + | +userId + | +Y | +Query | +String | +knoxportal + | ++ |
| 4 | +수신인 + | +recipients | +Y | +Body | +String | ++ | + |
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| API 호출 성공 + 여부 | +result + | +String | +success | ++ |
Sample
+| Request | +Response | +
|---|
| /mail/api/v2.0/mails/20190623111845epcms1v2dd0e6bfd951d8f03bd75cd90afacdf8a/cancel?userId=knoxportal Content-Type : application/json; body : { "recipients" : + ["sample.id@samsung.com","knoxportal@samsung.com"] } |
+ { "result": + "success" } |
+
| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 | +ML1001 | +필수값 중 입력되지 않은 값이 있습니다. + | +모든 필수값이 입력되었는지 확인이 필요합니다. 또, + 에러 메시지에 null인 parameter 명이 리턴된다면, 해당 값을 우선적으로 확인해야 합니다. | +
| 400 | +ML1002 | +사용자 정보가 존재하지 않습니다. | +호출 시 입력하는 URI 상의 Knox Id, 혹은 + 메일 발신자 knox 이메일 addresss가 정상적인지 확인이 필요합니다. | +
| 404 | +ML1003 | +요청하신 데이터가 존재하지 않습니다. + | +호출 시 입력한 MailId에 해당되는 메일 데이터가 + 존재하지 않습니다. 발신취소 및 상태조회 하고자 하는 발신자/수신자 정보 확인이 필요합니다. | +
/mail/api/v2.0/mails/deliverystatus/count?userId=Knox아이디 +
+전달받은 메일 ID 리스트에 대해서, 각각의 전체적인 수신상태를 조회할 수 + 있습니다.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +연계 시스템 + 아이디 | +System-ID | +Y | +Header | +String | +C60LD0001 + | ++ |
| 2 | +유저 아이디 + | +userId + | +Y | +Query | +String | +knoxportal + | ++ |
| 3 | +메일 아이디 + 리스트 | +mailIds + | +Y | +Body | +String | +20190623111845epcms1v2dd0e6bfd951d8f03bd75cd90afacdf8a + | ++ |
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 메일 아이디 + | +mailId + | +String | +20190409043651epcms1s110a09b3ca1b6c8d754ee1c28a182d8d5 + | ++ |
| 전체 + 카운트 | +totalStatusCount + | +int | +8 + | ++ | +
| 배달중 | +sendingCount | +int | +0 | ++ |
| 개봉 + | +openCount | +int | +1 | ++ |
| 미개봉 + | +unopenCount | +int | +7 | ++ |
| 기타 + | +etcCount | +int | +0 | ++ |
| 발신취소 | +sendCancelCount + | +int | +0 + | ++ |
| 발신취소 요청중 + | +sendCancelReqCount + | +int | +0 | ++ | +
| 발신차단 | +sendBlockCount + | +int | +0 + | ++ |
| 발신실패 | +sendFailCount + | +int | +0 + | ++ |
| 대외비 + 변환중 | +drmProcessCount + | +int | +0 + | ++ |
| 대외비 변환 + 실패 | +drmFailCount | +int | +0 | ++ |
| 예약 + | +reserveCount | +int | +0 | ++ |
| 예약 + 취소 | +reserveCancelCount + | +int | +0 | ++ | +
| 알수없음 | +unknownCount | +int | +0 | ++ |
| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 | +ML1001 | +필수값 중 입력되지 않은 값이 있습니다. + | +모든 필수값이 입력되었는지 확인이 필요합니다. 또, + 에러 메시지에 null인 parameter 명이 리턴된다면, 해당 값을 우선적으로 확인해야 합니다. | +
| 400 | +ML1002 | +사용자 정보가 존재하지 않습니다. | +호출 시 입력하는 URI 상의 Knox Id, 혹은 + 메일 발신자 knox 이메일 addresss가 정상적인지 확인이 필요합니다. | +
| 404 | +ML1003 | +요청하신 데이터가 존재하지 않습니다. + | +호출 시 입력한 MailId에 해당되는 메일 데이터가 + 존재하지 않습니다. 발신취소 및 상태조회 하고자 하는 발신자/수신자 정보 확인이 필요합니다. | +
/mail/api/v2.0/mails/{mailId}/deliverystatus?userId=Knox아이디 +
+전달받은 메일 ID에 대해서, 해당 메일의 수신인 별 수신 상태를 조회할 수 + 있습니다.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +연계 시스템 + 아이디 | +System-ID | +Y | +Header | +String | +C60LD0001 + | ++ |
| 2 | +메일 아이디 + | +{mailId} + | +Y | +Path | +String | +20190623111845epcms1v2dd0e6bfd951d8f03bd75cd90afacdf8a + | +발신된 모든 메일은 메일아이디라는 고유값을 가지며, 메일 발신이 성공하면 메일아이디를 전달받습니다.
+ 전달받은 메일아이디를 활용하여 발신취소 또는 수신상황 조회를 할 수 + 있습니다. |
+
| 3 | +유저 아이디 + | +userId + | +Y | +Query | +String | +knoxportal + | ++ |
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 이름 | +name | +String | +KnoxPortal + | ++ |
| 직급 + | +position | +String | +Senior + Engineer | ++ |
| 영문 성명 + | +enName + | +String | +KnoxPortal + ServiceDesk | ++ |
| 영문 + 직급 | +enPosition | +String | +Senior + Engineer | ++ |
| 회사명 + | +company + | +String | +삼성SDS | ++ |
| 부서명 + | +department | +String | +사업그룹(Knox + Portal) | ++ |
| 영문 + 부서명 | +enDepartment | +String | +Business + Group | ++ |
| 이메일 주소 + | +String | +knoxportal@samsung.com | ++ | |
| 유저 ID + | +userID + | +String | +knoxportal + | ++ |
| 수신타입 | +recipientType + | +String | +TO + | ++ |
| 수신상태가 업데이트된 + 시간 | +updateTime | +Calendar | +{"month":6,"year":2019,"dayOfMonth":7,"hourOfDay":5,"minute":48,"second":16} + | ++ |
| 개봉상태 + | +status + | +String | +UNOPEN | ++ |
| 수신자가 메일 + 개봉시 발신자에게 알림 여부 | +needOpenNotify + | +boolean | +false | ++ |
| DL 메일주소 + 여부값 | +isDLAddr | +boolean | +false | ++ |
| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 | +ML1001 | +필수값 중 입력되지 않은 값이 있습니다. + | +모든 필수값이 입력되었는지 확인이 필요합니다. 또, + 에러 메시지에 null인 parameter 명이 리턴된다면, 해당 값을 우선적으로 확인해야 합니다. | +
| 400 | +ML1002 | +사용자 정보가 존재하지 않습니다. | +호출 시 입력하는 URI 상의 Knox Id, 혹은 + 메일 발신자 knox 이메일 addresss가 정상적인지 확인이 필요합니다. | +
| 404 | +ML1003 | +요청하신 데이터가 존재하지 않습니다. + | +호출 시 입력한 MailId에 해당되는 메일 데이터가 + 존재하지 않습니다. 발신취소 및 상태조회 하고자 하는 발신자/수신자 정보 확인이 필요합니다. | +
사전에 생성하신 Knox Portal 비실명계정을 발신자로 하여 Knox Messenger 내에서
+ 대화방을 생성하고 메시지를 발신할 수 있습니다.
발신계정을 챗봇 타입으로 생성하시고 수신API 구축하시면 메시지를 수신하실 수도 있습니다..
| API | +URI | +Method | +Description | +
|---|
| 메신저 연락처 + 추가 | +/messenger/contact/api/v1.0/contact/o1/user + | +POST | +메신저 연락처에 친구를 + 등록한다. | +
| 메신저 연락처 + 삭제 | +/messenger/contact/api/v1.0/contact/o1/user/delete + | +POST | +메신저 연락처에 친구를 + 삭제한다. | +
| 메신저 연락처 리스트 + 조회 | +/messenger/contact/api/v1.0/contact/o1/list + | +GET | +메신저 연락처 등록된 리스트를 + 조회한다. | +
| 메신저 User ID + 검색 | +/messenger/contact/api/v1.0/profile/o1/search/loginid + | +POST | +Knox Portal ID로 메신저 + 내부 User ID를 검색한다. | +
| 메신저 Device + 등록 | +/messenger/contact/api/v1.0/device/o1/reg + | +GET | +연계시스템 발신계정에 대한 메신저 + Device를 등록한다. | +
| 메신저 Device + 해지 | +/messenger/contact/api/v1.0/device/o1/delete + | +POST | +연계시스템 발신계정에 대한 메신저 + Device를 해지한다. | +
| 메신저 Device + 사용정보 조회 | +/messenger/contact/api/v1.0/device/o1/use/info + | +POST | +본인 또는 타인의 메신저 Device별 + 사용정보를 조회한다. | +
| 파일서버 암호화 Key + 조회 | +/messenger/file/api/v1.0/file/v1/getCurrentTime + | +GET | +파일 업로드/다운로드 API 사용을 + 위한 암호화 Key를 조회한다. | +
| 파일 + 업로드 | +/messenger/file/api/v1.0/file/v1s/file/{filename} + | +PUT | +첨부파일을 업로드한다. + | +
| 파일 + 다운로드 | +/messenger/file/api/v1.0/file/v1s/file/{file_id} + | +GET | +첨부파일을 다운로드한다. + | +
| 메시지서버 암호화 + Key 조회 | +/messenger/msgctx/api/v1.0/key/getkeys + | +GET | +메시지서버의 Body 암호화용 Key를 + 조회한다. | +
| 대화방 참여자정보 + 조회 | +/messenger/msgctx/api/v1.0/chat/activemember + | +GET | +특정 대화방의 참여자수와 User + ID를 조회한다. | +
| 대화방 + 생성 | +/messenger/message/api/v1.0/message/createChatroomRequest + | +POST | +신규 대화방을 생성한다. + | +
| 메시지 + 발신 | +/messenger/message/api/v1.0/message/chatRequest + | +POST | +대화방에 메시지를 + 발신한다. | +
| 대화상대 + 초대 | +/messenger/message/api/v1.0/message/inviteRequest + | +POST | +대화방에 대화상대를 + 초대한다. | +
| 대화상대 + 내보내기 | +/messenger/message/api/v1.0/message/removeMemberRequest + | +POST | +대화방에서 대화상대를 + 내보낸다. | +
| 대화방 + 삭제 | +/messenger/message/api/v1.0/message/destroyChatroomRequest + | +POST | +대화방을 삭제한다. + | +
| 메시지 + 발신취소 | +/messenger/message/api/v1.0/message/recallMessageRequest + | +POST | +발신된 메시지를 + 발신취소한다. | +
| 대화방명 + 변경 | +/messenger/message/api/v1.0/message/changeChatroomMetaRequest + | +POST | +대화방 이름을 변경한다. (방장만 + 가능) | +
| 방장 + 변경 | +/messenger/message/api/v1.0/message/changeOwnerRequest + | +POST | +대화방의 방장을 변경한다. (방장만 + 가능) | +
| 대화방 + 나가기 | +/messenger/message/api/v1.0/message/endChatRequest + | +POST | +대화방을 나간다. | +
| 메시지 읽음 + Count 조회 | +/messenger/message/api/v1.0/message/messageReadCountRequest + | +POST | +발신된 메시지의 읽음 Count를 + 조회한다. | +
/messenger/contact/api/v1.0/contact/o1/user
+연락처에 친구 추가. 자통법 대상자는 친구 추가 불가 및 blocklist로 결과 + 반환.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +Access + token | +Authorization | +y | +Header | +String | +Bearer + fc55e83b7dea72ebe8f4f0dee2a2c4 | ++ |
| 2 | +Device + Type | +x-device-type + | +y | +Header | +String | +relation | ++ | +
| 3 | +Device + ID | +x-device-id | +y | +Header | +String | +1234 + | ++ | +
| 4 | +Content Type + | +Content-Type + | +y | +Header | +String | +application/json + | ++ | +
| 5 | +Accept | +Accept | +y | +Header | +String | +application/json | ++ |
| 6 | +연락처에 등록할 + contactList | +contactList + | +y | +Body | +List | ++ | ++ |
| 7 | +연락처에 등록할 + userID | +contactList.userID + | +y | +Body | +Long | +1010101010101 + | ++ |
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 연락처에 등록된 + userID 리스트 | +contactList + | +List + | ++ | ++ |
| 연락처에 + 등록된 userID | +userID + | +Long + | +1010101010103 + | ++ | +
Sample
+| Request | +Response | +
|---|
POST + /messenger/contact/api/v1.0/contact/o1/user HTTP/1.1 Host : yyy.xxxxxx.com { “contactList” : [ { “userID” : + 10101010101 }, { “userID” : + 10101010102 } ] } |
+ { “contactList” : [ { “userID” : + 10101010101 } ], “blockedUserIDList” + : [ { “userID” : + 10101010102 } ] } |
+
| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 + | +CFC-100002 + | +Group + is not exist | ++ | +
| 400 + | +CFC-200001 + | +Contact + is already added | ++ | +
| 400 + | +CFC-200003 + | +parameter + userID is invalid userID | ++ | +
| 400 + | +CFC-200004 + | +Blocked + Group Relation | ++ | +
| 400 + | +CFC-200005 + | +Exceeded + max contact member limit | ++ | +
/messenger/contact/api/v1.0/contact/o1/user/delete +
+연락처에서 친구를 삭제.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +Access + token | +Authorization | +y | +Header | +String | +Bearer + fc55e83b7dea72ebe8f4f0dee2a2c4 | ++ |
| 2 | +Device + Type | +x-device-type + | +y | +Header | +String | +relation | ++ | +
| 3 | +Device + ID | +x-device-id | +y | +Header | +String | +1234 + | ++ | +
| 4 | +Content Type + | +Content-Type + | +y | +Header | +String | +application/json + | ++ | +
| 5 | +Accept | +Accept | +y | +Header | +String | +application/json | ++ |
| 6 | +연락처에서 제거할 + contactList | +contactList + | +y | +Body | +List | ++ | ++ |
| 7 | +연락처에서 제거할 + userID | +contactList.userID + | +y | +Body | +Long | +1010101010101 + | ++ |
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| - | +- | +- | +- | +- | +
Sample
+| Request | +Response | +
|---|
POST + /messenger/contact/api/v1.0/contact/o1/user/delete HTTP/1.1 Host : yyy.xxxxxx.com { “contactList” : [ { “userID” : + 10101010101 }, { “userID” : + 10101010102 } ] } |
+ - | +
| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 + | +CFC-100002 + | +Group + is not exist | ++ | +
| 400 + | +CFC-200002 + | +parameter + userid is not exist in contactlist | ++ | +
GET + /messenger/contact/api/v1.0/contact/o1/list
+등록된 연락처 목록을 조회횐다.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +Access + token | +Authorization | +y | +Header | +String | +Bearer + fc55e83b7dea72ebe8f4f0dee2a2c4 | ++ |
| 2 | +Device + Type | +x-device-type + | +y | +Header | +String | +relation | ++ | +
| 3 | +Device + ID | +x-device-id | +y | +Header | +String | +1234 + | ++ | +
| 4 | +Content Type + | +Content-Type + | +y | +Header | +String | +application/json + | ++ | +
| 5 | +Accept | +Accept | +y | +Header | +String | +application/json | ++ |
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 동기화시간 + | +syncTime + | +long + | +1480489063661 + | +Returns + sync time which will be used at next API call. | +
| 연락처 + 목록 | +contactList + | +List + | +[ {"userID": + 753912291915206657}, {"userID": + 753912292411707393}, {"userID": + 753912844722900993}, {"userID": + 753913660166377473} ] |
+ Returns + contact list | +
| 사용자ID + | +contactList:userID + | +long + | +753912291915206657 + | +Returns + userID of contact. | +
Sample
+| Request | +Response | +
|---|
| /messenger/contact/api/v1.0/contact/o1/list + | +{ "syncTime": + 1480489063661", "contactList": [ {"userID": 753912291915206657}, {"userID": 753912292411707393}, {"userID": 753912844722900993}, {"userID": 753913660166377473} ] } |
+
POST + /messenger/contact/api/v1.0/profile/o1/search/loginid
+SingleID (Knox Portal ID)를 이용한 사용자 + 검색
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +Access + token | +Authorization | +y | +Header | +String | +Bearer + fc55e83b7dea72ebe8f4f0dee2a2c4 | ++ |
| 2 | +Device + Type | +x-device-type + | +y | +Header | +String | +relation | ++ | +
| 3 | +Device + ID | +x-device-id | +y | +Header | +String | +1234 + | ++ | +
| 4 | +Content Type + | +Content-Type + | +y | +Header | +String | +application/json + | ++ | +
| 5 | +Accept | +Accept | +y | +Header | +String | +application/json | ++ |
| 6 | +검색할 + 사용자 리스트 | +singleIdList + | +y | +Body | +List | +[ {"singleId" : + "test1.kim"}, {"singleId" : + "test2.lee"}, {"singleId" : + "test3.park"} ] |
+ 검색할 사용자 + 리스트 | +
| 7 | +검색할 + 사용자의 Knox Portal ID | +singleIdList:singleId + | +y | +Body | +String | +test1.kim + | +검색할 사용자의 + Knox Portal ID | +
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 사용자조회결과 + | +userSearchResult + | +Object + | ++ | +Returns + profile search result. | +
| 조회결과목록 + | +searchResultList + | +List + | ++ | +Returns + users userID | +
| 사용자ID + | +userID + | +long + | +753913659651002369 + | +Returns + users userID. | +
| 싱글ID + | +singleID + | +String + | +test1.kim + | +Returns + users Knox Suite ID | +
Sample
+| Request | +Response | +
|---|
| POST /messenger/contact/api/v1.0/profile/o1/search/loginid HTTP/1.1
+ { "singleIdList" : + [ {"singleId" : "test1.kim"}, {"singleId" : "test2.lee"}, {"singleId" : "test3.park"} ] } |
+ { "userSearchResult": + { "searchResultList": [ { "userID": + 753913659651002369, "singleID": + "test1.kim" } { "userID": + 753913660166377473, "singleID": + "test3.park" } ], "hasMore": + false } } |
+
GET + /messenger/contact/api/v1.0/device/o1/reg
+사용 기기를 등록 및 Knox Messenger 기기 인증에 + 사용될 x-device-id값 제공.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +Access + token | +Authorization | +y | +Header | +String | +Bearer + fc55e83b7dea72ebe8f4f0dee2a2c4 | ++ |
| 2 | +Device + Type | +x-device-type + | +y | +Header | +String | +relation | ++ | +
| 3 | +Content Type + | +Content-Type + | +y | +Header | +String | +application/json + | ++ | +
| 4 | +Accept | +Accept | +y | +Header | +String | +application/json | ++ |
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 디바이스서버ID + | +deviceServerID + | +long + | +22222 + | +등록된 + deviceID. | +
| 등록된 + 기기의 사용자ID | +userID + | +long + | +110101010 + | +Returns + users userID. | +
Sample
+| Request | +Response | +
|---|
| GET + /messenger/contact/api/v1.0/device/o1/reg HTTP/1.1 | +{ “deviceServerID” : + 22222, “userID” : 110101010 } |
+
| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 403 + | +CFC-900003 + | +device + type is not invalid | ++ | +
| 403 + | +CFC-900008 + | +exceeded + device reg limit | ++ | +
| 403 + | +CFC-900009 + | +exceeded + device model length limit | ++ | +
| 403 + | +CFC-900010 + | +Device + reg is not allowed | ++ | +
/messenger/contact/api/v1.0/device/o1/delete +
+등록된 기기를 해지. 접속 중인 기기를 해지할 경우 미인증 단말로 + 인식.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +Access + token | +Authorization | +y | +Header | +String | +Bearer + fc55e83b7dea72ebe8f4f0dee2a2c4 | ++ |
| 2 | +Device + Type | +x-device-type + | +y | +Header | +String | +relation | ++ | +
| 3 | +Device + ID | +x-device-id | +y | +Header | +String | +1234 + | ++ | +
| 4 | +Content Type + | +Content-Type + | +y | +Header | +String | +application/json + | ++ | +
| 5 | +Accept | +Accept | +y | +Header | +String | +application/json | ++ |
| 6 | +등록 해지된 + deviceID. | +deviceServerID + | +y | +Body | +Long | +10101010101 + | ++ |
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| API 호출 성공 + 여부 | +result | +String | +success, + fail | ++ |
Sample
+| Request | +Response | +
|---|
| { POST + /messenger/contact/api/v1.0/device/o1/delete HTTP/1.1 Host : yyy.xxxxxx.com { “deviceList” : [ { “deviceServerID” : 10101010101 + }, { “deviceServerID” : + 10101010102 } ] }} |
+ - | +
| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 | +CFC-900006 | +parameter + deviceID is not registered | +parameter + deviceID is not registered | +
/messenger/contact/api/v1.0/device/o1/use/info +
+본인 및 타인의 기기별 마지막 사용시간 조회.(Open API 기기 + 제외)
+singleIdList는 최대 600개까지 입력 가능함.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +Access + token | +Authorization | +y | +Header | +String | +Bearer + fc55e83b7dea72ebe8f4f0dee2a2c4 | ++ |
| 2 | +Device + Type | +x-device-type + | +y | +Header | +String | +relation | ++ | +
| 3 | +Device + ID | +x-device-id | +y | +Header | +String | +1234 + | ++ | +
| 4 | +Content Type + | +Content-Type + | +y | +Header | +String | +application/json + | ++ | +
| 5 | +Accept | +Accept | +y | +Header | +String | +application/json | ++ |
| 6 | +조회할 사용자 + 리스트. | +singleIdList + | +y | +Body | +List | +[] + | ++ | +
| 7 | +조회할 사용자의 + Knox Suite ID | +singleIdList.singleId + | +y | +Body | +String | +[] + | ++ | +
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| API 호출 성공 + 여부 | +result | +String + | +success, + fail | ++ | +
| 사용자별 검색 + 결과 | +userDeviceList + | +String + | +[ + ] | ++ | +
| 사용자의 + userID | +userID | +Long + | +10101010101 | ++ | +
| 사용자의 Knox + Suite ID | +singleID | +String + | +test1.kim | ++ | +
| 사용자의 + deviceList | +deviceList + | +List + | +[ + ] | ++ | +
| 사용자의 + deviceID | +deviceServerID + | +Long + | +20490 | ++ | +
| 마지막 + 접속시간 | +conn_date + | +String + | +2016-06-22 PM + 04:22:46 | ++ | +
| OS + Type | +deviceOsType + | +String + | +Windows, + Android,iOS | ++ | +
| Device + Type | +deviceType + | +String + | +pc, + mobile | ++ | +
Sample
+| Request | +Response | +
|---|
| { POST + /messenger/contact/api/v1.0/device/o1/use/info HTTP/1.1 { "singleIdList" : [ {"singleId" : + "test1.kim"}, {"singleId" : + "test2.lee"}, {"singleId" : + "test3.park"} + ] } Host : + yyy.xxxxxx.com}} |
+ { { "userDeviceList": [ { "userID": + 761258979308365297, "singleID": + "test1.kim", "deviceList": + [ + { + "deviceServerID": 1000003610, + "conn_date": "2016-06-22 PM 04:22:46", + "deviceType": "pc", + “deviceOsType”: “Windows” } ] }, { "userID": + 755053073097855041, + "singleID": "test2.lee", + "deviceList": [ + { + "deviceServerID": 20490, "deviceType": + "mobile", “deviceOsType”: “Android” }, + { + "deviceServerID": 1000006058, + "deviceType": "mobile" “deviceOsType”: “iOS” + } + ] + }, { "userID": + 755053029387931649, + "singleID": "test3.park", + "deviceList": [] } ] } } |
+
| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| + | + | + | + |
GET + /messenger/file/api/v1.0/file/v1/getCurrentTime
+Secure API 호출 시 사용되는 x-request-time에 대입할 서버 + 측 현재 시간(UTC) 및 암호화 키를 반환한다.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +Accept | +Accept | ++ | Header | +String | +application/json + | +application/json + | +
| 2 | +Access + token | +Authorization + | +y | +Header | +String | +Bearer + ce1d72e2a6c96cc09db7c837b1e44fc1 | +[평문] Access + Token. | +
| 3 | +Access + token | +x-access-token + | +y | +Header | +String | +ce1d72e2a6c96cc09db7c837b1e44fc1 + | +[평문] Access + Token - Authorization과 동일한 값이나 Bearer는 제외 | +
| 4 | +Device ID + | +x-device-id + | +y | +Header | +String | +131314850 + | +[평문] Device + registration API를 통해 얻은 deviceServerID를 사용 | +
| 5 | +Device + Type | +x-device-type + | +y | +Header | +String | +relation + | +[평문] Device type을 + 사용. - Valid Values: [relation] | +
| 6 | +키문자열(파일명) | +word | +y | +Path | +String | +r1234562312121.gif + | +[평문] 파일명을 이용해서 암호화 키 문자열로 사용 - + Upload : [file name] Download : [fileid] |
+
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 서버시간 | +serverTime + | +String | +1487298788653 + | +서버측 현재 + 시간(UTC) | +
| 암호키값 | +word | +String | +!2#4%6&8(0gif.gif1@3$5^7*9)!2#4% + | +암호키값 | +
Sample
+| Request | +Response | +
|---|
| GET + /messenger/file/api/v1.0/file/v1/getCurrentTime HTTP/1.1 Host : File + Server Authorization: Bearer f5fe27195fb2523cee1758c162a9f60 x-access-token: + f5fe27195fb2523cee1758c162a9f60 x-device-id: 131314850 x-device-type: + relation [Upload] GET + /messenger/file/api/v1.0/file/v1/getCurrentTime?word=r1234562312121.gif + HTTP/1.1 Host : File Server Authorization: Bearer + f5fe27195fb2523cee1758c162a9f60 x-access-token: + f5fe27195fb2523cee1758c162a9f60 x-device-id: 131314850 x-device-type: + relation [Download] GET + /messenger/file/api/v1.0/file/v1/getCurrentTime?word=70wT1NHM0y0TF HTTP/1.1 Host : + File Server Authorization: Bearer + f5fe27195fb2523cee1758c162a9f60 x-access-token: + f5fe27195fb2523cee1758c162a9f60 x-device-id: 131314850 x-device-type: + relation | +[success] HTTP/1.1 + 200 OK Content-Type: application/json Server: File + Server { "serverTime": "1487298788653", "word": + "!2#4%6&8(0gif.gif1@3$5^7*9)!2#4%" } [error] HTTP/1.1 400 Bad + Request Content-Type: application/json Content-Length: 97 Server: File + Server Connection: close { "svrTime": "2016-02-11 + 12:34:03.997", "errorCode": "CFI-10001", "errorMessage": " x-device-id is + mandatory" } | +
Error Code
+| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 200 | ++ | Success | ++ | +
| 204 | ++ | No + Content | ++ | +
| 301 | ++ | Moved + Permanently | ++ | +
| 302 | ++ | Found | ++ | +
| 307 | ++ | Temporary + redirect | ++ | +
| 400 | +CFI-10001 | +{argument} is + mandatory | ++ | +
| 400 | +CFI-10002 | +{argument} is + invalid | ++ | +
| 400 | +BLUE-999999 | +Device is not + registered | ++ | +
| 400 | +BLUE-444401 | +Email address is not + verified | ++ | +
| 401 | ++ | Unauthorized | ++ | +
| 403 | ++ | Forbidden | ++ | +
| 500 | ++ | Internal + Server Error | ++ | +
PUT + /messenger/file/api/v1.0/file/v1s/file/{filename}
+파일 서버에 파일이 업로드 되고 해당 파일을 다운로드 받을 수 있는 URL을 + 반환한다.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +Accept | +Accept | ++ | Header | +String | +application/json + | +응답에 허용되는 특정 미디어 + 유형을 지정. - Default: application/json - Valid Values: [application/json, + application/xml] | +
| 2 | +Content-Type + | +Content-Type + | ++ | Header | +String | +binary/octet-stream + | +Content-Type - + Default: binary/octet-stream - Valid Values: MIME types | +
| 3 | +Content-Length + | +Content-Length + | +y | +Header | +String | +32121 + | +업로드 할 파일의 크기 + (bytes) Valid Values: decimal number | +
| 4 | +Access + token | +Authorization + | +y | +Header | +String | +Bearer + ce1d72e2a6c96cc09db7c837b1e44fc1 | +[평문] Access + Token | +
| 5 | +Access + token | +x-access-token + | +y | +Header | +String | +BublCtBL1kiiUfArCc1ECFChhKGKrdc5liIrsFEuc1kh2pgPShAar9x81edAn1zd + | +[암호화] Access + Token을 aes256으로 암호화 해야함 - Token type (“Bearer”)를 제외한 Token Value만 Encrypt 처리 + | +
| 6 | +Device ID + | +x-device-id + | +y | +Header | +String | +wsXERf15w7AZy9m0xJVg+g== + | +[암호화] Device + registration API를 통해 얻은 deviceServerID를 AES256으로 암호화해서 사용 | +
| 7 | +Device + Type | +x-device-type + | +y | +Header | +String | +9JtF6T25SvaSnkgmbkIZsA== + | +[암호화] Device type을 + AES256으로 암호화해서 사용. - Valid Values: [relation] | +
| 8 | +Server + Time | +x-request-time + | +y | +Header | +String | +JVdr5iiTe6ogMBoGnwkhOg== + | +[암호화] File Server + Time(key) API를 통해 얻은 serverTime을 AES256으로 암호화해서 사용 | +
| 9 | +File + Name | +filename | +y | +Header | +String | +r1500944966271.jpg + | +[평문] 업로드 시 파일이름은 + 반드시 다음의 Rule을 준수해서 지정. - Rule : “r” + TimeStamp + Extension | +
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 다운로드 경로 + | +download_url + | +String | +https://yyy.xxxxxx.com/file/v1s/file/70wT1NHM0y0TF + | +파일 다운로드 경로 + | +
Sample
+| Request | +Response | +
|---|
| PUT + /messenger/file/api/v1.0/file/v1s/file/ r1500944966271.jpg HTTP/1.1 Host : File + Server Content-Length: 11434 Authorization: Bearer + f5fe27195fb2523cee1758c162a9f60 x-access-token: + BublCtBL1kiiUfArCc1ECFChhKGKrdc5liIrsFEuc1kh2pgPShAar9x81edAn1zd x-device-id: + wsXERf15w7AZy9m0xJVg+g== x-device-type: + 9JtF6T25SvaSnkgmbkIZsA== x-request-time: JVdr5iiTe6ogMBoGnwkhOg== [11434 + bytes of object data] | +[success] HTTP/1.1 + 200 OK Content-Type: application/json Server: File + Server { "download_url": + "https://yyy.xxxxxx.com/file/v1s/file/70wT1NHM0y0TF" } [error] HTTP/1.1 + 400 Bad Request Content-Type: application/json Content-Length: 98 Server: + File Server Connection: close { "svrTime": "2015-02-11 + 12:32:30.234", "errorCode": "CFI-10002", "errorMessage": "filename is + invalid" } | +
Error Code
+| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 200 | ++ | Success | ++ | +
| 204 | ++ | No + Content | ++ | +
| 301 | ++ | Moved + Permanently | ++ | +
| 302 | ++ | Found | ++ | +
| 307 | ++ | Temporary + redirect | ++ | +
| 400 | +CFI-10001 | +{argument} is + mandatory | ++ | +
| 400 | +CFI-10002 | +{argument} is + invalid | ++ | +
| 400 | +CFI-10003 | +File size is + overflow | ++ | +
| 400 | +CFI-10004 | +File size is + empty | ++ | +
| 400 | +CFI-10005 | +File format is + error | ++ | +
| 400 | +CFI-10006 | +File format is not + supported | ++ | +
| 400 | +CFI-10011 | +Infected File + | ++ | +
| 400 | +CFI-10013 | +No + permission to upload a file | ++ | +
| 400 | +BLUE-999999 | +Device is not + registered | ++ | +
| 400 | +BLUE-444401 | +Email address is not + verified | ++ | +
| 401 | ++ | Unauthorized | ++ | +
| 403 | ++ | Forbidden | ++ | +
| 500 | ++ | Internal + Server Error | ++ | +
GET + /messenger/file/api/v1.0/file/v1s/file/{file_id}
+파일 서버에서 파일을 다운로드 한다. 만약 파일을 다운로드 하려면, + 당신의 application은 반드시 302 code responses를 취급해야 한다.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +Access + token | +Authorization + | +y | +Header | +String | +Bearer + ce1d72e2a6c96cc09db7c837b1e44fc1 | +[평문] Access + Token | +
| 2 | +Access + token | +x-access-token + | +y | +Header | +String | +BublCtBL1kiiUfArCc1ECFChhKGKrdc5liIrsFEuc1kh2pgPShAar9x81edAn1zd + | +[암호화] Access + Token을 aes256으로 암호화 해야함 - Token type (“Bearer”)를 제외한 Token Value만 Encrypt 처리 + | +
| 3 | +Device ID + | +x-device-id + | +y | +Header | +String | +wsXERf15w7AZy9m0xJVg+g== + | +[암호화] 기기 등록을 통해 + 얻은 deviceServerID를 aes256으로 암호화 해야함. | +
| 4 | +Device + Type | +x-device-type + | +y | +Header | +String | +9JtF6T25SvaSnkgmbkIZsA== + | +[암호화] 기기 타입을 + aes256으로 암호화 해야함. - Valid Values: [relation] | +
| 5 | +Server + Time | +x-request-time + | +y | +Header | +String | +JVdr5iiTe6ogMBoGnwkhOg== + | +[암호화] 파일 서버에서 받은 + 서버시간을 AES256 Encrypt 처리하여 지정 | +
| 6 | +파일ID | +file_id | +y | +Path | +String | +70wT1NHM0y0TF + | +[암호화] Secure + Upload File API를 통해 얻은 download_url의 맨 뒤 file ID값을 AES256으로 암호화해서 사용 | +
| 7 | +썸네일 + 크기 | +thumb | ++ | Parameter + | +String | +160x160 + | +다운로드 할 썸네일의 사이즈 + 지정. - Valid Values: [160x160] | +
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| (데이터) + | +(payload) + | +Binary | ++ | +파일 바이너리 + 데이터 | +
Sample
+| Request | +Response | +
|---|
| GET + /messenger/file/api/v1.0/file/v1s/file/70wT1NHM0y0TF?thumb=160x160 HTTP/1.1 Host : + File Server Authorization: Bearer + f5fe27195fb2523cee1758c162a9f60 x-access-token: + BublCtBL1kiiUfArCc1ECFChhKGKrdc5liIrsFEuc1kh2pgPShAar9x81edAn1zd x-device-id: + wsXERf15w7AZy9m0xJVg+g== x-device-type: + 9JtF6T25SvaSnkgmbkIZsA== x-request-time: JVdr5iiTe6ogMBoGnwkhOg== | +[success] HTTP/1.1 + 200 OK Content-Length: 434234 Content-Type: image/jpeg Connection: + close Server: File Server [434234 bytes of object + data] [error] HTTP/1.1 400 Bad Request Content-Type: + application/json Content-Length: 97 Server: File Server Connection: + close {"svrTime": "2015-02-11 12:34:03.997","errorCode": "CFI-10002", + "errorMessage": "file_id is invalid"} | +
Error Code
+| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 200 | ++ | Success | ++ | +
| 204 | ++ | No + Content | ++ | +
| 301 | ++ | Moved + Permanently | ++ | +
| 302 | ++ | Found | ++ | +
| 307 | ++ | Temporary + redirect | ++ | +
| 400 | +CFI-10001 | +{argument} is + mandatory | ++ | +
| 400 | +CFI-10002 | +{argument} is + invalid | ++ | +
| 400 | +CFI-10007 | +File has expired + | ++ | +
| 400 | +CFI-10012 | +V7 + Empsearch API error | ++ | +
| 400 | +BLUE-999999 | +Device is not + registered | ++ | +
| 400 | +BLUE-444401 | +Email address is not + verified | ++ | +
| 401 | ++ | Unauthorized | ++ | +
| 403 | ++ | Forbidden | ++ | +
| 500 | ++ | Internal + Server Error | ++ | +
/messenger/msgctx/api/v1.0/key/getkeys
+Device의 channel auth Key and device key를 조회한다. +
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +Access + token | +Authorization + | +y | +Header + | +String + | +Bearer + fc55e83b7dea72ebe8f4f0dee2a2c4 | ++ |
| 2 | +Device + ID | +x-device-id + | +y | +Header + | +Long | +1234 | ++ | +
| 3 | +Content + Type | +Content-Type + | +n | +Header + | +String + | +application/json + | ++ |
| 4 | +Accept | +Accept | +n | +Header + | +String | +application/json + | ++ | +
| 5 | +Device Type + | +x-device-type + | +n | +Header + | +String | +mobile | +mobile or pc or + relation | +
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| Device의 + Message key | +key + | +String | +4cc5d9fa5d44819357618b8a8d8c21326df20fa95cd5fd6da0f9cdd030d1a9b7c31df7eb7080b9c3b62ee0348eb1d86b + | ++ | +
| Device의 Expired + message key | +expiredkey + | +String + | +4cc5d9fa5d44819357618b8a8d8c21326df20fa95cd5fd6da0f9cdd030d1a9b7c31df7eb7080b9c3b62ee0348eb1d86b + | +optional | +
| Channel Auth + key | +channelauthkey + | +String + | +537461636b5472616365456c656d656e745b5d20656c656d73203d2065782e67696e742066696e616c4c656e203d2070 + | ++ |
| Message + key의 expiring Timestamp 값 | +keyexpirationtimestamp + | +Long + | +1718094662042 + | ++ |
Sample
+| Request | +Response | +
|---|
| GET /messenger/msgctx/api/v1.0/key/getkeys HTTP/1.1 Host : + yyy.xxxxxx.com Content-type: + application/json Accept: + application/json x-device-type : + mobile x-device-id : 1234 Authorization : Bearer fc55e83b7dea72ebe8f4f0dee2a2c4 + |
+ HTTP/1.1 200 OK { “key” : + “4cc5d9fa5d44819357618b8a8d8c21326df20fa95cd5fd6da0f9cdd030d1a9b7c31df7eb7080b9c3b62ee0348eb1d86b”, “channelauthkey” : + “537461636b5472616365456c656d656e745b5d20656c656d73203d2065782e67696e742066696e616c4c656e203d2070” } |
+
| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 + | +BLUE-999999 + | +Not exist + deviceId | ++ | +
| 400 + | +BMC-300150 + | +Not Exist + Channel Auth Key. | ++ | +
/messenger/msgctx/api/v1.0/chat/activemember +
+채팅방의 참여자 수와 User ID를 조회한다.
+Request Parameter
+| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +Access + token | +Authorization + | +y + | +Header + | +String + | +Bearer + fc55e83b7dea72ebe8f4f0dee2a2c4 | ++ |
| 2 | +Device + ID | +x-device-id + | +y + | +Header + | +Long + | +1234 + | ++ |
| 3 | +Content + Type | +Content-Type + | +n + | +Header + | +String + | +application/json + | ++ |
| 4 | +Accept + | +Accept + | +n + | +Header + | +String + | +application/json + | ++ |
| 5 | +Device + Type | +x-device-type + | +n + | +Header + | +String + | +mobile + | +mobile or pc or + relation | +
| 6 | +Chatroom + Id | +chatroomid + | +y + | +Query + | +Long + | +332321144605 + | +max 19 number + string | +
Response Parameter
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 현재 + 대화방에 참여중인 멤버의 수 | +activemembercount + | +Integer + | +10 + | ++ | +
| 현재 + 대화방에 참여중인 멤버의 User ID List. | +activememberlist + | +Long + | ++ | +List + | +
Sample
+| Request | +Response | +
|---|
| GET
+ /messenger/msgctx/api/v1.0/chat/activemember?chatroomid=1221232323 HTTP/1.1 Host : + yyy.xxxxxx.com Content-type: + application/json Accept: + application/json x-device-type : + mobile x-device-id : 1234 Authorization : Bearer fc55e83b7dea72ebe8f4f0dee2a2c4 + |
+ HTTP/1.1 200 OK { “activemembercount”:5, “activememberlist” : [ 753913371694206977, 753915435136061441, 753915446684553217, 753916848394735617, 753916967328419841 ] } |
+
| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 + | +BLUE-999999 + | +Not + exist deviceId | ++ | +
아래 목록의 API들은 메시지군의 API들로써 공통적인 포맷을
+ 갖는다. (payload data 암호화, 공통 error 코드)
- 대화방 생성
- 메시지 발신
- 대화상대 초대
- 대화상대 내보내기
- 대화방
+ 삭제
- 메시지 발신취소
- 대화방명 변경
- 방장 변경
- 대화방 나가기
- 메시지 읽음 Count 조회
payload data 암호화
+API호출에 사용되는 Request Payload data와
+ Response Payload data는 암호된 값을 사용한다.
각 API 기능별로 Payload 내에 적재된 RequestBody와 ResponseBody내용을 전송단에서
+ Aes256암호화 > Base64암호화를 거쳐 데이터를 보내며, 수신단에서 Base64복호화 > Aes256복호화를 거쳐 암호화를 해제함으로써 데이터 추출할 수
+ 있다.
기능별 API 명세에서는 각 API별로, 암호화가 해제된 평문 기준의 RequestBody, ResponseBody 명세에 대한 설명이 기재되어 있다.
연계 시스템측에서 사용하게 되는 RequestBody 암호화 및 + ResponseBody 복호화에 대한 예시는 아래와 같다.
+| [RequestBody + 암호화 예시] | +[ResponseBody + 복호화 예시] | +
|---|
| 적용전 (RequestBody평문): {"requestId": 1578016699286727, "chatroomId":
+ 99343295704997888} 암호화 1단계: AES256 + 인코딩 암호화 2단계: BASE64 인코딩 적용후 (RequestBody암호문): + IN/WslquK+4b3I+I3lJF1UyiYksAhZRncHL5axCGpJur9U/LabuKIIo7OKEQe1JOSaCb3szhWphL2Ufhj86dcClTXz5b+AVYDq6LRbd4zBQ= + |
+ 적용전 (ResponseBody-암호문):
+ 7Q9FCL95U+5FIFGcZbG9Y6wvpod95dfH+pxDZVb3HnJzz/U+nZAG3tQ+NPOUprKaMZ3rTEPbYsMr89KIWEdpog==
+ 복호화 1단계: AES256 디코딩 복호화 2단계: AES256 디코딩 적용후 + (ResponseBody-평문): { "code": 3003, "msg": "All receivers are invalid." + } |
+
※ 예시에 사용된 메시지 키 값은 아래와 같으며, 실사용시 메시지
+ 키값을 "메시지서버 암호화 Key 조회" api로 조회하여 사용하여야 한다.(메시지 key값은 단말별로 부여됨)
- 예시에 사용된 메시지 key:
+ "b6d06ce799b97b58aa606e393c6a18ee1f6008726b59072036207ccafe6443b9b3c546f665fdae562a7d8d35f4bca16e"
+
※ 암복호화 모듈 구현은 샘플 코드를 참고 바람.
+메시지 공통 Error Code
+| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 200 | +1000 | +Success | ++ | +
| 200 | +1001 | +Detected + some invalid receivers. (Success partial) | ++ | +
| 204 | ++ | No + Content | ++ | +
| 400 | +2001 | +Wrong + token | ++ | +
| 400 | +2002 | +Not + registered requester. | ++ | +
| 400 | +3003 | +Invalid + receiver. | ++ | +
| 400 | +3004 | +Receiver is + not enabled. | ++ | +
| 400 | +3005 | +Exceeded + chatroom count limit. | ++ | +
| 400 | +3009 | +Membership + violation detected. | ++ | +
| 400 | +3106 | +All + receivers are invalid. | ++ | +
| 400 | +4001 | +Wrong + parameter value. | ++ | +
| 400 | +4003 | +Wrong body! (Fail decrypt about message body.) 해당 에러 발생 시 6.1 GET Keys API를 수행하여 최신 Key value를 response 받아서 + RequestBody 암호화를 수행할 것을 권장함. |
+ + | +
| 400 | +6001 | +General DAO + error | ++ | +
| 400 | +7001 | +Not bounded + device. | ++ | +
| 400 | +9000 | +Internal + server error. | ++ | +
| 400 | +9001 | +Exceeded + session count limit. | ++ | +
| 400 | +9002 | +Short Term + DDoS detected. | ++ | +
| 400 | +9003 | +Long Term DDoS detected. (정책 시간 동안 + api 사용 금지 ex. 12시간) |
+ + | +
| 401 | ++ | Unauthorized | ++ | +
| 403 | ++ | Forbidden | ++ | +
| 500 | ++ | Internal + Server Error | ++ | +
POST + /messenger/message/api/v1.0/message/createChatroomRequest
+신규 대화방을 생성한다.
+Request Parameter
+| Parameter Type | +No. | +Properties | +Attribute | +Mandatory | +Data Type | +Sample Data | +Note | +
|---|
| Header | +1 | +응답 허용 + 타입 | +Accept + | ++ | String | +"application/json" + | +Default: application/json Valid + Values: [application/json, application/xml] |
+
| + | 2 | +첨부데이터타입 + | +Content-Type + | +y | +String | +"application/json" + | +Payload의 content type 명시 ex) + application/json |
+
| + | 3 | +인증토큰 + | +Authorization + | +y | +String | +"Bearer + f5fe27195fb2523cee1758c162a9f60" | +[평문] Access Token (발급 + 받은 Access Token) | +
| + | 4 | +단말ID | +x-device-id + | +y | +String | +"104032854" | +[평문] + 연계시스템용으로 등록한 단말 ID ("메신저 Device 등록" 부분 참조) | +
| + | 5 | +단말종류 | +x-device-type + | +y | +String | +"relation" + | +[평문] 단말 타입, “relation” 으로 고정 ※ + relation: 외부연계 시스템 |
+
| Payload | ++ | + | Body | +y | +String | +"/6Fz+KIhVzmyhiBpMrLNJp+0saSg7b7XlZp3tlXrnRLVaCHDD4XqV9dGVh6hmri7hR3dJdTps1qO3gDH1XccTj3Qmy3X4MsMBFP8AW3uIGk7QdlBp0wMi8FBrHExUR/h" + | +[암호화] Payload 데이터 ※ 평문 + 상태(json문자열)의 BODY항목을 2단계 암호화를 거친 암호화된 문자열 값. 1단계: + Aes256암호화 (암호화키는 "메시지서버 암호화 Key 조회" 부분 참조) 2단계: + Base64암호화 |
+
| + | (1) | +요청ID + | +BODY:requestId + | +y | +Long | +1302575819285 + | +Packet별로 + Unique한 Id Milliseconds 형식 (ex. 1302575819285 ) | +
| + | (2) | +대화방유형 + | +BODY:chatType + | +y | +Integer | +2 | +Chat Type, 대화방 유형 “단방향(공지type)” + 외부연계 사용 시 2,5만 사용 0: (SINGLE) – 1:1 대화 1: (GROUP) – + Group 대화 2: (BROADCAST GROUP) Group + 공지방(2인이상) 5: (BROADCAST SINGLE) 1:1 + 공지방 |
+
| + | (3) | +참여자목록 + | +BODY:receivers + | +y | +List |
+ [753917009235808257,753916848517419009] + | +채팅 참여자들의 User + Id를 리스트 형태로 작성 | +
| + | (4) | +대화방이름 + | +BODY:chatroomTitle + | ++ | String | +"dev server + team" | +최대 길이 128 자 + (utf8mb4) | +
Response Parameter [Encrypted]
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 요청ID + | +requestId + | +Long | +15783867572942564 + | +Packet별로 Unique한 Id (Milliseconds 형식) ※ 요청시 사용한 requestId 값과 동일 |
+
| 대화방ID + | +chatroomId + | +Long | +99536308621824000 + | +생성된 대화방 + Id | +
| 결과 + | +result + | ++ | + | 결과 | +
| 결과:코드 + | +result:code + | +Integer | +1000 + | +결과 코드 + | +
| 결과:(에러)내용 + | +result:msg + | +String | +"Detected + some invalid receivers." | +결과 내용 + | +
| 결과:참여불가상세 + | +result:wrongReceiverDetail + | ++ | + | + |
| 결과:참여불가상세:잘못된 + 사용자 목록 | +result: + wrongReceiverDetail: invalidReceivers | +List |
+ [897548937598437953, + 89754354568789456] | +잘못된 유저정보로 대화방에 입장할 수 없는 사용자 * 결과 + 코드 1001/3003 리턴 |
+
| 결과:참여불가상세:정책상 + 불허된 목록 | +result: + wrongReceiverDetail: organizationViolated | +List |
+ [897548937598437953, + 89754354568789456] | +정책상 대화할 수 없는 사용자 (회사가 다르면 대화가 불가함) * 결과 코드 1001/3003 리턴 |
+
| 결과:참여불가상세:단말 + 미등록자 목록 | +result: + wrongReceiverDetail: disabledReceivers | +List |
+ [897548937598437953, + 89754354568789456] | +등록된 단말이 없어서 대화에 참여할 수 없는 사용자 * 결과 + 코드 1001/3003 리턴 |
+
| 결과:참여불가상세:자통법상 + 차단된 목록 | +result: + wrongReceiverDetail: blockedGroup | +List |
+ [897548937598437953, + 89754354568789456] | +자본시장통합법에 의거 대화를 할 수 없는 관계의 사용자 * + 결과 코드 1001/3003 리턴 |
+
| 대화방 + 생성시간 | +createTimeMillis + | +Long | +1578386757248 + | +대화방 + 생성시간 | +
Sample
+| Request | +Response | +
|---|
| POST /messenger/message/api/v1.0/message/createChatroomRequest
+ HTTP/1.1 headers: + {"Accept": "application/json", "Authorization": "Bearer + ed114dc382ca16d5b43154fe5832a7", "Content-Type": "application/json", "x-device-id": + "1000145874", "Content-Length": "172"} body(암호화전): {"chatType": 2, + "requestId": 1578016699286727, + "receivers":[753917009235808257,753916848517419009]} |
+ HTTP/1.1 200 OK Content-Type: + application/json Server: Message + Server {"requestId": 1578016699286727, "chatroomId": 99343295704997888, + "result": {"code": 1000, "wrongReceiverDetail": {}}, createTimeMillis": + 1578016699269} |
+
Error Code
+"메시지 API 공통 포맷" 부분 참조 (에러코드 부분)
+POST + /messenger/message/api/v1.0/message/chatRequest
+메시지를 발송한다.
+Request Parameter
+| Parameter Type | +No. | +Properties | +Attribute | +Mandatory | +Data Type | +Sample Data | +Note | +
|---|
| Header | +1 | +응답 허용 + 타입 | +Accept + | ++ | String | +"application/json" + | +Default: application/json Valid + Values: [application/json, application/xml] |
+
| + | 2 | +첨부데이터타입 + | +Content-Type + | +y | +String | +"application/json" + | +Payload의 content type 명시 ex) + application/json |
+
| + | 3 | +인증토큰 + | +Authorization + | +y | +String | +"Bearer + f5fe27195fb2523cee1758c162a9f60" | +[평문] Access Token (발급 + 받은 Access Token) | +
| + | 4 | +단말ID | +x-device-id + | +y | +String | +"104032854" | +[평문] + 연계시스템용으로 등록한 단말 ID ("메신저 Device 등록" 부분 참조) | +
| + | 5 | +단말종류 | +x-device-type + | +y | +String | +"relation" + | +[평문] 단말 타입, “relation” 으로 고정 ※ + relation: 외부연계 시스템 |
+
| Payload | ++ | + | Body | +y | +String | +"/6Fz+KIhVzmyhiBpMrLNJp+0saSg7b7XlZp3tlXrnRLVaCHDD4XqV9dGVh6hmri7hR3dJdTps1qO3gDH1XccTj3Qmy3X4MsMBFP8AW3uIGk7QdlBp0wMi8FBrHExUR/h" + | +[암호화] Payload 데이터 ※ 평문 + 상태(json문자열)의 BODY항목을 2단계 암호화를 거친 암호화된 문자열 값. 1단계: + Aes256암호화 (암호화키는 "메시지서버 암호화 Key 조회" 부분 참조) 2단계: + Base64암호화 |
+
| + | (1) | +요청ID + | +BODY: + requestId | +y | +Long | +# + {"requestId": 15784605065976949, "chatroomId": 99343295704997888, "chatMessageParams": + [{"msgId": 15784605065976949, "msgType": 0, "chatMsg": "blah~ blah~", "msgTtl": + 7200}]} | +Packet별로 Unique한 + Id Milliseconds 형식 (ex. 1302575819285 ) | +
| + | (2) | +대화방ID + | +BODY: + chatroomId | +y | +Long | +99343295704997888 + | +대화방 ID | +
| + | (3) | ++ | BODY: + chatMessageParams | +y | +List |
+ + | 최대 10개 | +
| + | (3-1) | ++ | BODY: + chatMessageParam: msgId | +y | +Long | +1578409921352 + | +메시지별 Unique한 ID, + Milliseconds 형식 (ex. 1302575819285 ) | +
| + | (3-2) | ++ | BODY: + chatMessageParam: msgType | +y | +Integer | +0 | +Msg Type, 메시지 유형 0: (TEXT) ? Common text message 1: + (MEDIA) ? MultiMedia message (file, video) 7: (RTF) + - Excel message 8: (NCUSTOM) - Message with json + format |
+
| + | (3-3) | ++ | BODY: + chatMessageParam: chatMsg | +y | +String | +"Hello + world!" | +메시지 내용 (최대 + 3,300자) | +
| + | (3-4) | ++ | BODY: + chatMessageParam: msgTtl | ++ | Integer | +7200 | +메시지 서버 저장 기간 (Min : 3600 sec / Max : according to company policy /
+ Default : 259200 sec) * If an unacceptable value is + entered, the default value |
+
# {"requestId": + 15784605065976949, "chatroomId": 99343295704997888, "chatMessageParams": [{"msgId": 15784605065976949, + "msgType": 0, "chatMsg": "blah~ blah~", "msgTtl": 7200}]}
+Response Parameter [Encrypted]
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 요청ID + | +requestId + | +Long | +15783867572942564 + | +Packet별로 Unique한 Id (Milliseconds 형식) ※ 요청시 사용한 requestId 값과 동일 |
+
| 대화방ID + | +chatroomId + | +Long | +99536308621824000 + | +생성된 대화방 Id + | +
| 결과 + | +result + | ++ | + | Result * If Nth message in 10 is + failed, It is cause of failure for the message. |
+
| 결과: 코드 + | +result: + code | +Integer | +1000 + | +Result + code | +
| 결과: + (에러)내용 | +result: + msg | +String | ++ | Result + message | +
| 결과: + 메시지처리상세 | +result: + processedMessageEntries | +List |
+ + | + |
| 결과: 메시지처리상세: + 메시지ID | +result: + processedMessageEntrie: msgId | +Long | ++ | 전달된 메시지 ID + | +
| 결과: 메시지처리상세: + 전달시간 | +result: + processedMessageEntrie: sentTime | +Long | +1578449866003 + | +전달시간 (서버 기준) * If it is failed to + sending message, returns 0 |
+
| 결과: + 참여불가상세 | +result: + wrongReceiverDetail | ++ | + | + |
| 결과: 참여불가상세: + 잘못된 사용자 목록 | +result: + wrongReceiverDetail: invalidReceivers | +List |
+ [897548937598437953, + 89754354568789456] | +잘못된 유저 정보로 메시지를 전달할 수 없는 사용자 * It + is available for ResultCode 1001/3003 |
+
| 결과: 참여불가상세: + 단말 미등록자 목록 | +result: + wrongReceiverDetail: disabledReceivers | +List |
+ [897548937598437953, + 89754354568789456] | +등록된 단말이 없어서 메시지를 전달할 수 없는 사용자 * It + is available for ResultCode 1001/1003 |
+
Sample
+| Request | +Response | +
|---|
| POST /messenger/message/api/v1.0/message/chatRequest
+ HTTP/1.1 headers: {"Accept": "application/json", + "Authorization": "Bearer ed114dc382ca16d5b43154fe5832a7", "Content-Type": + "application/json", "x-device-id": "1000145874", "Content-Length": + "172"} body(암호화전): {"requestId": 15784605065976949, "chatroomId": + 99343295704997888, "chatMessageParams": [{"msgId": 15784605065976949, "msgType": 0, + "chatMsg": "blah~ blah~", "msgTtl": 7200}]} |
+ HTTP/1.1 200 OK Content-Type: + application/json Server: Message + Server {"requestId":15784605065976949,"chatroomId":99343295704997888,"result":{"code":1000,"wrongReceiverDetail":{}},"processedMessageEntries":[{"msgId":15784605065976949,"sentTime":1578460506612}]} + |
+
Error Code
+"메시지 API 공통 포맷" 부분 참조 (에러코드 부분)
+POST + /messenger/message/api/v1.0/message/inviteRequest
+대화 상대를 초대한다.
+Request Parameter
+| Parameter Type | +No. | +Properties | +Attribute | +Mandatory | +Data Type | +Sample Data | +Note | +
|---|
| Header | +1 | +응답 허용 + 타입 | +Accept + | ++ | String | +"application/json" + | +Default: application/json Valid + Values: [application/json, application/xml] |
+
| + | 2 | +첨부데이터타입 + | +Content-Type + | +y | +String | +"application/json" + | +Payload의 content type 명시 ex) + application/json |
+
| + | 3 | +인증토큰 + | +Authorization + | +y | +String | +"Bearer + f5fe27195fb2523cee1758c162a9f60" | +[평문] Access Token (발급 + 받은 Access Token) | +
| + | 4 | +단말ID | +x-device-id + | +y | +String | +"104032854" | +[평문] + 연계시스템용으로 등록한 단말 ID ("메신저 Device 등록" 부분 참조) | +
| + | 5 | +단말종류 | +x-device-type + | +y | +String | +"relation" + | +[평문] 단말 타입, “relation” 으로 고정 ※ + relation: 외부연계 시스템 |
+
| Payload | ++ | + | Body | +y | +String | +"/6Fz+KIhVzmyhiBpMrLNJp+0saSg7b7XlZp3tlXrnRLVaCHDD4XqV9dGVh6hmri7hR3dJdTps1qO3gDH1XccTj3Qmy3X4MsMBFP8AW3uIGk7QdlBp0wMi8FBrHExUR/h" + | +[암호화] Payload 데이터 ※ 평문 + 상태(json문자열)의 BODY항목을 2단계 암호화를 거친 암호화된 문자열 값. 1단계: + Aes256암호화 (암호화키는 "메시지서버 암호화 Key 조회" 부분 참조) 2단계: + Base64암호화 |
+
| + | (1) | +요청ID + | +BODY: + requestId | +y | +Long | +1302575819285 + | +Packet별로 Unique한 + Id Milliseconds 형식 (ex. 1302575819285 ) | +
| + | (2) | +대화방ID + | +BODY: + chatroomId | +y | +Long | +99343295704997888 + | +대화방 ID + | +
| + | (3) | +초대자목록 + | +BODY: + invitingMembers | +y | +List |
+ [773887412433063937, + 74124330639377655] | +초대 대상자 User + Id | +
# {"requestId": 15784506666772442, + "chatroomId": 99343295704997888, "invitingMembers": [773887412433063937]}
+Response Parameter [Encrypted]
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 요청ID + | +requestId + | +Long | +15783867572942564 + | +Packet별로 Unique한 Id (Milliseconds 형식) ※ 요청시 사용한 requestId 값과 동일 |
+
| 대화방ID + | +chatroomId + | +Long | +99536308621824000 + | +생성된 대화방 + Id | +
| 초대받은시간 + | +sentTime + | +Long | +1578450666592 + | +서버로부터 초대받은 + 시간 | +
| 결과 + | +result + | ++ | + | Result * If Nth message in 10 is + failed, It is cause of failure for the message. |
+
| 결과: + 코드 | +result: + code | +Integer | +1000 + | +Result + code | +
| 결과: + (에러)내용 | +result: + msg | +String | ++ | Result + message | +
| 결과: + 참여불가상세 | +result: + wrongReceiverDetail | ++ | + | + |
| 결과: 참여불가상세: + 잘못된 사용자 목록 | +result: + wrongReceiverDetail: invalidReceivers | +List |
+ [897548937598437953, + 89754354568789456] | +잘못된 유저 정보로 메시지를 전달할 수 없는 사용자 * It + is available for ResultCode 1001/3003 |
+
| 결과: 참여불가상세: + 정책상 불허된 목록 | +result: + wrongReceiverDetail: organizationViolated | +List |
+ [897548937598437953, + 89754354568789456] | +정책상 대화할 수 없는 사용자 (회사가 다르면 대화가 불가함) * It is available for ResultCode 1001/3003 |
+
| 결과: + 참여불가상세: 단말 미등록자 목록 | +result: + wrongReceiverDetail: disabledReceivers | +List |
+ [897548937598437953, + 89754354568789456] | +등록된 단말이 없어서 메시지를 전달할 수 없는 사용자 * + It is available for ResultCode 1001/1003 |
+
| 결과: + 참여불가상세: 이미 참여한 목록 | +result: + wrongReceiverDetail: existing | +List |
+ [897548937598437953, + 89754354568789456] | +이미 대화방에 참여중인 사용자 * It is available + for ResultCode 1001/3003 |
+
| 결과: + 참여불가상세: 인원제한으로 누락된 목록 | +result: + wrongReceiverDetail: interruptedReceivers | +List |
+ [897548937598437953, + 89754354568789456] | +대화방의 멤버가 최대 인원을 넘어서 초대할 수 없는 사용자 * + It is available for ResultCode 1001/3003 |
+
| 결과: + 참여불가상세: 자통법상 차단된 목록 | +result: + wrongReceiverDetail: blockedGroup | +List |
+ [897548937598437953, + 89754354568789456] | +자본시장통합법에 의거 대화를 할 수 없는 관계의 사용자 * + It is available for ResultCode 1001/3003 |
+
# + {"requestId":15784506666772442,"chatroomId":99343295704997888,"result":{"code":1000,"wrongReceiverDetail":{}},"sentTime":1578450666592} +
+Sample
+| Request | +Response | +
|---|
| POST /messenger/message/api/v1.0/message/inviteRequest
+ HTTP/1.1 headers: {"Accept": "application/json", + "Authorization": "Bearer ed114dc382ca16d5b43154fe5832a7", "Content-Type": + "application/json", "x-device-id": "1000145874", "Content-Length": + "172"} body(��ȣȭ��): {"requestId": + 15784506666772442, "chatroomId": 99343295704997888, "invitingMembers": + [773887412433063937]} |
+ HTTP/1.1 200 OK Content-Type: + application/json Server: Message + Server {"requestId":15784506666772442,"chatroomId":99343295704997888,"result":{"code":1000,"wrongReceiverDetail":{}},"sentTime":1578450666592} + |
+
Error Code
+"메시지 API 공통 포맷" 부분 참조 (에러코드 부분)
+POST + /messenger/message/api/v1.0/message/removeMemberRequest
+대화 상대를 방출한다.
+Request Parameter
+| Parameter Type | +No. | +Properties | +Attribute | +Mandatory | +Data Type | +Sample Data | +Note | +
|---|
| Header | +1 | +응답 허용 + 타입 | +Accept + | ++ | String | +"application/json" + | +Default: application/json Valid + Values: [application/json, application/xml] |
+
| + | 2 | +첨부데이터타입 + | +Content-Type + | +y | +String | +"application/json" + | +Payload의 content type 명시 ex) + application/json |
+
| + | 3 | +인증토큰 + | +Authorization + | +y | +String | +"Bearer + f5fe27195fb2523cee1758c162a9f60" | +[평문] Access Token (발급 + 받은 Access Token) | +
| + | 4 | +단말ID | +x-device-id + | +y | +String | +"104032854" | +[평문] + 연계시스템용으로 등록한 단말 ID ("메신저 Device 등록" 부분 참조) | +
| + | 5 | +단말종류 | +x-device-type + | +y | +String | +"relation" + | +[평문] 단말 타입, “relation” 으로 고정 ※ + relation: 외부연계 시스템 |
+
| Payload | ++ | + | Body | +y | +String | +"/6Fz+KIhVzmyhiBpMrLNJp+0saSg7b7XlZp3tlXrnRLVaCHDD4XqV9dGVh6hmri7hR3dJdTps1qO3gDH1XccTj3Qmy3X4MsMBFP8AW3uIGk7QdlBp0wMi8FBrHExUR/h" + | +[암호화] Payload 데이터 ※ 평문 + 상태(json문자열)의 BODY항목을 2단계 암호화를 거친 암호화된 문자열 값. 1단계: + Aes256암호화 (암호화키는 "메시지서버 암호화 Key 조회" 부분 참조) 2단계: + Base64암호화 |
+
| + | (1) | +요청ID + | +BODY:requestId + | +y | +Long | +1302575819285 + | +Packet별로 Unique한 + Id Milliseconds 형식 (ex. 1302575819285 ) | +
| + | (2) | +대화방ID + | +BODY:chatroomId + | +y | +Long | +99343295704997888 + | +대화방 ID + | +
| + | (3) | +방출자 목록 + | +BODY:removingMembers + | +y | +List |
+ [753917009235808257,753916848517419009] + | +방출할 대상자 User Id를 + 리스트 형태로 작성 | +
Response Parameter [Encrypted]
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 요청ID + | +requestId + | +Long | +15783867572942564 + | +Packet별로 Unique한 Id (Milliseconds 형식) ※ 요청시 사용한 requestId 값과 동일 |
+
| 대화방ID + | +chatroomId + | +Long | +99536308621824000 + | +생성된 대화방 + Id | +
| 요청시간 + | ++ | + | 1578450666592 + | +서버로 요청받은 + 시간 | +
| 결과 + | +result + | ++ | + | 결과 | +
| 결과:코드 + | +result:code + | +Integer | +1000 + | +결과 코드 + | +
| 결과:(에러)내용 + | +result:msg + | +String | ++ | 결과 내용 + | +
| 결과:비정상수신자상세 + | +result:wrongReceiverDetail + | ++ | + | + |
| 결과:비정상수신자상세:미참여 + | +result: + wrongReceiverDetail:notExisting | +List |
+ [897548937598437953, + 89754354568789456] | +내보내기 대상자 중 대화방 멤버가 아닌 사용자 * 결과 코드 + 1001/3003 리턴 |
+
Sample
+| Request | +Response | +
|---|
| POST /messenger/message/api/v1.0/message/removeMemberRequest
+ HTTP/1.1 headers: + {"Accept": "application/json", "Authorization": "Bearer + ed114dc382ca16d5b43154fe5832a7", "Content-Type": "application/json", "x-device-id": + "1000145874", "Content-Length": "172"} body(암호화전): {"requestId": + 15784562811364493, "chatroomId": 99343295704997888, "removingMembers": + [773887412433063937]} |
+ HTTP/1.1 200 OK Content-Type: + application/json Server: Message + Server {"requestId":15784562811364493,"chatroomId":99343295704997888,"result":{"code":1000},"sentTime":1578456281137} + |
+
Error Code
+"메시지 API 공통 포맷" 부분 참조 (에러코드 부분)
+POST + /messenger/message/api/v1.0/message/destroyChatroomRequest
+대화방을 삭제한다.
+Request Parameter
+| Parameter Type | +No. | +Properties | +Attribute | +Mandatory | +Data Type | +Sample Data | +Note | +
|---|
| Header | +1 | +응답 허용 + 타입 | +Accept + | ++ | String | +"application/json" + | +Default: application/json Valid + Values: [application/json, application/xml] |
+
| + | 2 | +첨부데이터타입 + | +Content-Type + | +y | +String | +"application/json" + | +Payload의 content type 명시 ex) + application/json |
+
| + | 3 | +인증토큰 + | +Authorization + | +y | +String | +"Bearer + f5fe27195fb2523cee1758c162a9f60" | +[평문] Access Token (발급 + 받은 Access Token) | +
| + | 4 | +단말ID | +x-device-id + | +y | +String | +"104032854" | +[평문] + 연계시스템용으로 등록한 단말 ID ("메신저 Device 등록" 부분 참조) | +
| + | 5 | +단말종류 | +x-device-type + | +y | +String | +"relation" + | +[평문] 단말 타입, “relation” 으로 고정 ※ + relation: 외부연계 시스템 |
+
| Payload | ++ | + | Body | +y | +String | +"/6Fz+KIhVzmyhiBpMrLNJp+0saSg7b7XlZp3tlXrnRLVaCHDD4XqV9dGVh6hmri7hR3dJdTps1qO3gDH1XccTj3Qmy3X4MsMBFP8AW3uIGk7QdlBp0wMi8FBrHExUR/h" + | +[암호화] Payload 데이터 ※ 평문 + 상태(json문자열)의 BODY항목을 2단계 암호화를 거친 암호화된 문자열 값. 1단계: + Aes256암호화 (암호화키는 "메시지서버 암호화 Key 조회" 부분 참조) 2단계: + Base64암호화 |
+
| + | (1) | +요청ID + | +BODY:requestId + | +y | +Long | +1302575819285 + | +Packet별로 + Unique한 Id Milliseconds 형식 (ex. 1302575819285 ) | +
| + | (2) | +대화방ID + | +BODY:chatroomId + | +y | +Long | +99343295704997888 + | +대화방 ID + | +
Response Parameter [Encrypted]
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 요청ID + | +requestId + | +Long | +15783867572942564 + | +Packet별로 Unique한 Id (Milliseconds 형식) ※ 요청시 사용한 requestId 값과 동일 |
+
| 대화방ID + | +chatroomId + | +Long | +99536308621824000 + | +생성된 대화방 + Id | +
| 결과 + | +result + | ++ | + | +결과 + | +
| 결과:코드 + | +result:code + | +Integer | +1000 + | +결과 코드 + | +
| 결과:(에러)내용 + | +result:msg + | +String | ++ | +결과 내용 + | +
Sample
+| Request | +Response | +
|---|
| POST /messenger/message/api/v1.0/message/destroyChatroomRequest
+ HTTP/1.1 headers: + {"Accept": "application/json", "Authorization": "Bearer + ed114dc382ca16d5b43154fe5832a7", "Content-Type": "application/json", "x-device-id": + "1000145874", "Content-Length": "172"} body(암호화전){"requestId": + 15784562811364493, "chatroomId": 99343295704997888} |
+ HTTP/1.1 200 OK Content-Type: application/json Server: Message
+ Server {"requestId":15784562811364493,"chatroomId":99343295704997888,"result":{"code":1000}} + |
+
Error Code
+"메시지 API 공통 포맷" 부분 참조 (에러코드 부분)
+POST + /messenger/message/api/v1.0/message/recallMessageRequest
+발송된 메시지를 취소한다.
+Request Parameter
+| Parameter Type | +No. | +Properties | +Attribute | +Mandatory | +Data Type | +Sample Data | +Note | +
|---|
| Header | +1 | +응답 허용 + 타입 | +Accept + | ++ | String | +"application/json" + | +Default: application/json Valid + Values: [application/json, application/xml] |
+
| + | 2 | +첨부데이터타입 + | +Content-Type + | +y | +String | +"application/json" + | +Payload의 content type 명시 ex) + application/json |
+
| + | 3 | +인증토큰 + | +Authorization + | +y | +String | +"Bearer + f5fe27195fb2523cee1758c162a9f60" | +[평문] Access Token (발급 + 받은 Access Token) | +
| + | 4 | +단말ID | +x-device-id + | +y | +String | +"104032854" | +[평문] + 연계시스템용으로 등록한 단말 ID ("메신저 Device 등록" 부분 참조) | +
| + | 5 | +단말종류 | +x-device-type + | +y | +String | +"relation" + | +[평문] 단말 타입, “relation” 으로 고정 ※ + relation: 외부연계 시스템 |
+
| Payload | ++ | + | Body | +y | +String | +"/6Fz+KIhVzmyhiBpMrLNJp+0saSg7b7XlZp3tlXrnRLVaCHDD4XqV9dGVh6hmri7hR3dJdTps1qO3gDH1XccTj3Qmy3X4MsMBFP8AW3uIGk7QdlBp0wMi8FBrHExUR/h" + | +[암호화] Payload 데이터 ※ 평문 + 상태(json문자열)의 BODY항목을 2단계 암호화를 거친 암호화된 문자열 값. 1단계: + Aes256암호화 (암호화키는 "메시지서버 암호화 Key 조회" 부분 참조) 2단계: + Base64암호화 |
+
| + | (1) | +요청ID + | +BODY:requestId + | +y | +Long | +1302575819285 + | +Packet별로 Unique한 + Id Milliseconds 형식 (ex. 1302575819285 ) | +
| + | (2) | +대화방ID + | +BODY:chatroomId + | +y | +Long | +99343295704997888 + | +대화방 ID + | +
| + | (3) | +메시지ID + | +BODY:msgId + | +y | +Long | +15784605065976949 + | +발신 취소 대상 메시지 + ID | +
| + | (4) | +원본메시지 + 발송시간 | +BODY:sentTime + | +y | +Long | +1578460506612 + | +원본 메시지 발송시간 + (메시지 발송 ChatReply 의 sentTime) | +
| + | (5) | +미디어정보 + | +BODY:mediaInfo + | ++ | String | +"http:// + sqaproxy.samsung.net/file/v1/file/esK93SYcoqeE8ETvJgUdeg" | +발신취소 대상 메시지가 + MEDIA 타입인 경우 삭제 대상 파일의 "download url" | +
Response Parameter [Encrypted]
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 요청ID + | +requestId + | +Long | +15783867572942564 + | +Packet별로 Unique한 Id (Milliseconds 형식) ※ 요청시 사용한 requestId 값과 동일 |
+
| 대화방ID + | +chatroomId + | +Long | +99536308621824000 + | +생성된 대화방 + Id | +
| 결과 + | +result + | ++ | + | 결과 | +
| 결과:코드 + | +result:code + | +Integer | +1000 + | +결과 코드 + | +
| 결과:(에러)내용 + | +result:msg + | +String | ++ | 결과 내용 + | +
Sample
+| Request | +Response | +
|---|
| POST /messenger/message/api/v1.0/message/recallMessageRequest
+ HTTP/1.1 headers: + {"Accept": "application/json", "Authorization": "Bearer + ed114dc382ca16d5b43154fe5832a7", "Content-Type": "application/json", "x-device-id": + "1000145874", "Content-Length": "172"} body(암호화전): {"requestId": + 15784610001948974, "chatroomId": 99343295704997888, "msgId": 15784605065976949, + "sentTime": 1578460506612} |
+ HTTP/1.1 200 OK Content-Type: + application/json Server: Message + Server {"requestId":15784610001948974,"chatroomId":99343295704997888,"result":{"code":1000}} + |
+
Error Code
+"메시지 API 공통 포맷" 부분 참조 (에러코드 부분)
+POST + /messenger/message/api/v1.0/message/changeChatroomMetaRequest
+대화방의 Meta 정보를 변경한다. (대화방명 변경만 + 가능)
+Request Parameter
+| Parameter Type | +No. | +Properties | +Attribute | +Mandatory | +Data Type | +Sample Data | +Note | +
|---|
| Header | +1 | +응답 허용 + 타입 | +Accept + | ++ | String | +"application/json" + | +Default: application/json Valid + Values: [application/json, application/xml] |
+
| + | 2 | +첨부데이터타입 + | +Content-Type + | +y | +String | +"application/json" + | +Payload의 content type 명시 ex) + application/json |
+
| + | 3 | +인증토큰 + | +Authorization + | +y | +String | +"Bearer + f5fe27195fb2523cee1758c162a9f60" | +[평문] Access Token (발급 + 받은 Access Token) | +
| + | 4 | +단말ID | +x-device-id + | +y | +String | +"104032854" | +[평문] + 연계시스템용으로 등록한 단말 ID ("메신저 Device 등록" 부분 참조) | +
| + | 5 | +단말종류 | +x-device-type + | +y | +String | +"relation" + | +[평문] 단말 타입, “relation” 으로 고정 ※ + relation: 외부연계 시스템 |
+
| Payload | ++ | + | Body | +y | +String | +"/6Fz+KIhVzmyhiBpMrLNJp+0saSg7b7XlZp3tlXrnRLVaCHDD4XqV9dGVh6hmri7hR3dJdTps1qO3gDH1XccTj3Qmy3X4MsMBFP8AW3uIGk7QdlBp0wMi8FBrHExUR/h" + | +[암호화] Payload 데이터 ※ 평문 + 상태(json문자열)의 BODY항목을 2단계 암호화를 거친 암호화된 문자열 값. 1단계: + Aes256암호화 (암호화키는 "메시지서버 암호화 Key 조회" 부분 참조) 2단계: + Base64암호화 |
+
| + | (1) | +요청ID + | +BODY: + requestId | +y | +Long | +1302575819285 + | +Packet별로 + Unique한 Id Milliseconds 형식 (ex. 1302575819285 ) | +
| + | (2) | +대화방ID + | +BODY: + chatroomId | +y | +Long | +99343295704997888 + | +대화방 + ID | +
| + | (3) | +대화방 + 이름 | +BODY: + title | ++ | String | +"dev + server team" | +변경하고자 하는 + 대화방명 | +
# {"requestId": + 15784610001948974, "chatroomId": 99343295704997888, "title": "메시지 테스트방1"}
+Response Parameter [Encrypted]
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 요청ID + | +requestId + | +Long | +15783867572942564 + | +Packet별로 Unique한 Id (Milliseconds 형식) ※ 요청시 사용한 requestId 값과 동일 |
+
| 대화방ID + | +chatroomId + | +Long | +99536308621824000 + | +생성된 대화방 + Id | +
| 결과 + | +result + | ++ | + | +Result + | +
| 결과: + 코드 | +result: + code | +Integer | +1000 + | +Result + code | +
| 결과: + (에러)내용 | +result: + msg | +String | ++ | +Result + message | +
| 대화방 + 변경시간 | +changeTimeMillis + | +Long | +1578386757248 + | +대화방 + 속성(이름)이 변경된 시간 | +
# {"requestId": + 15784610001948974, "chatroomId": 99343295704997888, "result": {"code": 1000}, changeTimeMillis": + 1578016699269}
+Sample
+| Request | +Response | +
|---|
| POST /messenger/message/api/v1.0/message/changeChatroomMetaRequest
+ HTTP/1.1 headers: {"Accept": "application/json", + "Authorization": "Bearer ed114dc382ca16d5b43154fe5832a7", "Content-Type": + "application/json", "x-device-id": "1000145874", "Content-Length": + "172"} body(암호화전): {"requestId": 15784610001948974, "chatroomId": + 99343295704997888, "title": "메시지 테스트방1"} |
+ HTTP/1.1 200 OK Content-Type: + application/json Server: Message + Server {"requestId": 15784610001948974, "chatroomId": 99343295704997888, + "result": {"code": 1000}, changeTimeMillis": 1578016699269} |
+
Error Code
+"메시지 API 공통 포맷" 부분 참조 (에러코드 부분)
+POST + /messenger/message/api/v1.0/message/changeOwnerRequest
+대화방의 방장을 변경한다. (ChatType이 0: (1:1 + 대화방), 1: (Group 대화방)에서만 지원됨)
+Request Parameter
+| Parameter Type | +No. | +Properties | +Attribute | +Mandatory | +Data Type | +Sample Data | +Note | +
|---|
| Header | +1 | +응답 허용 + 타입 | +Accept + | ++ | String | +"application/json" + | +Default: application/json Valid + Values: [application/json, application/xml] |
+
| + | 2 | +첨부데이터타입 + | +Content-Type + | +y | +String | +"application/json" + | +Payload의 content type 명시 ex) + application/json |
+
| + | 3 | +인증토큰 + | +Authorization + | +y | +String | +"Bearer + f5fe27195fb2523cee1758c162a9f60" | +[평문] Access Token (발급 + 받은 Access Token) | +
| + | 4 | +단말ID | +x-device-id + | +y | +String | +"104032854" | +[평문] + 연계시스템용으로 등록한 단말 ID ("메신저 Device 등록" 부분 참조) | +
| + | 5 | +단말종류 | +x-device-type + | +y | +String | +"relation" + | +[평문] 단말 타입, “relation” 으로 고정 ※ + relation: 외부연계 시스템 |
+
| Payload | ++ | + | Body | +y | +String | +"/6Fz+KIhVzmyhiBpMrLNJp+0saSg7b7XlZp3tlXrnRLVaCHDD4XqV9dGVh6hmri7hR3dJdTps1qO3gDH1XccTj3Qmy3X4MsMBFP8AW3uIGk7QdlBp0wMi8FBrHExUR/h" + | +[암호화] Payload 데이터 ※ 평문 + 상태(json문자열)의 BODY항목을 2단계 암호화를 거친 암호화된 문자열 값. 1단계: + Aes256암호화 (암호화키는 "메시지서버 암호화 Key 조회" 부분 참조) 2단계: + Base64암호화 |
+
| + | (1) | +요청ID + | +BODY: + requestId | +y | +Long | +# + {"requestId": 15784610001948974, "chatroomId": 99343295704997888, "newOwner": + 753917009235808257} | +Packet별로 + Unique한 Id Milliseconds 형식 (ex. 1302575819285 ) | +
| + | (2) | +대화방ID + | +BODY: + chatroomId | +y | +Long | +99343295704997888 + | +대화방 + ID | +
| + | (3) | +새방장ID + | ++ | + | Long | +753917009235808257 + | +새로운 + 방장ID | +
# {"requestId": + 15784610001948974, "chatroomId": 99343295704997888, "newOwner": 753917009235808257}
+Response Parameter [Encrypted]
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 요청ID + | +requestId + | +Long | +15783867572942564 + | +Packet별로 Unique한 Id (Milliseconds 형식) ※ 요청시 사용한 requestId 값과 동일 |
+
| 대화방ID + | +chatroomId + | +Long | +99536308621824000 + | +생성된 대화방 + Id | +
| 결과 + | +result + | ++ | + | +Result + | +
| 결과: + 코드 | +result: + code | +Integer | +1000 + | +Result + code | +
| 결과: + (에러)내용 | +result: + msg | +String | ++ | +Result + message | +
| 요청시간 + | +sentTime + | +Long | +1578386757248 + | +서버에서 해당 + Request를 받은 시간 | +
{"requestId": + 15784610001948974, "chatroomId": 99343295704997888, newOwner": 753917009235808257}
+Sample
+| Request | +Response | +
|---|
| POST /messenger/message/api/v1.0/message/changeOwnerRequest
+ HTTP/1.1 headers: {"Accept": "application/json", + "Authorization": "Bearer ed114dc382ca16d5b43154fe5832a7", "Content-Type": + "application/json", "x-device-id": "1000145874", "Content-Length": + "172"} body(암호화전): {"requestId": 15784610001948974, "chatroomId": + 99343295704997888, "newOwner": 753917009235808257} |
+ HTTP/1.1 200 OK Content-Type: + application/json Server: Message + Server {"requestId": 15784610001948974, "chatroomId": 99343295704997888, + "result": {"code": 1000}, newOwner": 753917009235808257} |
+
Error Code
+"메시지 API 공통 포맷" 부분 참조 (에러코드 부분)
+POST + /messenger/message/api/v1.0/message/endChatRequest
+대화방에서 퇴장한다.
+Request Parameter
+| Parameter Type | +No. | +Properties | +Attribute | +Mandatory | +Data Type | +Sample Data | +Note | +
|---|
| Header | +1 | +응답 허용 + 타입 | +Accept + | ++ | String | +"application/json" + | +Default: application/json Valid + Values: [application/json, application/xml] |
+
| + | 2 | +첨부데이터타입 + | +Content-Type + | +y | +String | +"application/json" + | +Payload의 content type 명시 ex) + application/json |
+
| + | 3 | +인증토큰 + | +Authorization + | +y | +String | +"Bearer + f5fe27195fb2523cee1758c162a9f60" | +[평문] Access Token (발급 + 받은 Access Token) | +
| + | 4 | +단말ID | +x-device-id + | +y | +String | +"104032854" | +[평문] + 연계시스템용으로 등록한 단말 ID ("메신저 Device 등록" 부분 참조) | +
| + | 5 | +단말종류 | +x-device-type + | +y | +String | +"relation" + | +[평문] 단말 타입, “relation” 으로 고정 ※ + relation: 외부연계 시스템 |
+
| Payload | ++ | + | Body | +y | +String | +"/6Fz+KIhVzmyhiBpMrLNJp+0saSg7b7XlZp3tlXrnRLVaCHDD4XqV9dGVh6hmri7hR3dJdTps1qO3gDH1XccTj3Qmy3X4MsMBFP8AW3uIGk7QdlBp0wMi8FBrHExUR/h" + | +[암호화] Payload 데이터 ※ 평문 + 상태(json문자열)의 BODY항목을 2단계 암호화를 거친 암호화된 문자열 값. 1단계: + Aes256암호화 (암호화키는 "메시지서버 암호화 Key 조회" 부분 참조) 2단계: + Base64암호화 |
+
| + | (1) | +요청ID | +BODY:requestId + | +y | +Long | +1302575819285 + | +Packet별로 Unique한 Id + Milliseconds 형식 (ex. 1302575819285 ) | +
| + | (2) | ++ | BODY:endChatEntries + | +y | +List |
+ + | + |
| + | (2-1) | +퇴장할 + 대화방 ID | +BODY:endChatEntriy:chatroomId + | +y | +Long | +99343295704997888 + | +퇴장할 대화방 ID | +
Response Parameter [Encrypted]
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 요청ID | +requestId + | +Long | +15783867572942564 + | +Packet별로 Unique한 Id (Milliseconds 형식) ※ 요청시 사용한 requestId 값과 동일 |
+
| 결과 | +result + | ++ | + | 결과 | +
| 결과:코드 | +result:code + | +Integer | +1000 | +결과 코드 | +
| 결과:(에러)내용 + | +result:msg + | +String | ++ | 결과 내용 | +
Sample
+| Request | +Response | +
|---|
| POST /messenger/message/api/v1.0/message/endChatRequest
+ HTTP/1.1 headers: + {"Accept": "application/json", "Authorization": "Bearer + ed114dc382ca16d5b43154fe5832a7", "Content-Type": "application/json", "x-device-id": + "1000145874", "Content-Length": "172"} body(암호화전): {"requestId": + 15784610001948974, "endChatEntries":[{"chatroomId": + 99343295704997888}]} |
+ HTTP/1.1 200 OK Content-Type: + application/json Server: Message + Server {"requestId": 15784610001948974, "result": {"code": + 1000}} |
+
Error Code
+"메시지 API 공통 포맷" 부분 참조 (에러코드 부분)
+POST + /messenger/message/api/v1.0/message/messageReadCountRequest
+발신 메시지를 읽은 사용자의 수를 조회한다.
+Request Parameter
+| Parameter Type | +No. | +Properties | +Attribute | +Mandatory | +Data Type | +Sample Data | +Note | +
|---|
| Header | +1 | +응답 허용 + 타입 | +Accept + | ++ | String | +"application/json" + | +Default: application/json Valid + Values: [application/json, application/xml] |
+
| + | 2 | +첨부데이터타입 + | +Content-Type + | +y | +String | +"application/json" + | +Payload의 content type 명시 ex) + application/json |
+
| + | 3 | +인증토큰 + | +Authorization + | +y | +String | +"Bearer + f5fe27195fb2523cee1758c162a9f60" | +[평문] Access Token (발급 + 받은 Access Token) | +
| + | 4 | +단말ID | +x-device-id + | +y | +String | +"104032854" | +[평문] + 연계시스템용으로 등록한 단말 ID ("메신저 Device 등록" 부분 참조) | +
| + | 5 | +단말종류 | +x-device-type + | +y | +String | +"relation" + | +[평문] 단말 타입, “relation” 으로 고정 ※ + relation: 외부연계 시스템 |
+
| Payload | ++ | + | Body | +y | +String | +"/6Fz+KIhVzmyhiBpMrLNJp+0saSg7b7XlZp3tlXrnRLVaCHDD4XqV9dGVh6hmri7hR3dJdTps1qO3gDH1XccTj3Qmy3X4MsMBFP8AW3uIGk7QdlBp0wMi8FBrHExUR/h" + | +[암호화] Payload 데이터 ※ 평문 + 상태(json문자열)의 BODY항목을 2단계 암호화를 거친 암호화된 문자열 값. 1단계: + Aes256암호화 (암호화키는 "메시지서버 암호화 Key 조회" 부분 참조) 2단계: + Base64암호화 |
+
| + | (1) | +요청ID + | +BODY:requestId + | +y | +Long | +1302575819285 + | +Packet별로 Unique한 + Id Milliseconds 형식 (ex. 1302575819285 ) | +
| + | (2) | +대화방ID + | +BODY:chatroomId + | +y | +Long | +99343295704997888 + | +대화방 ID + | +
| + | (3) | +메시지정보 + | +BODY:messageEntry + | +y | +List |
+ + | + |
| + | (3-1) | +메시지ID + | +BODY:messageEntry: + msgId | +y | +Long | +38635452485935 + | +카운트 조회를 하고자 하는 + 메시지의 ID | +
| + | (3-2) | +원본메시지 + 발송시간 | +BODY:endChatEntriy:messageEntry: + sentTime | ++ | Long | +1472639462088 + | +카운트 조회를 하고자 하는 + 메시지의 sent time | +
Response Parameter [Encrypted]
+| Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 요청ID + | +requestId + | +Long | +15783867572942564 + | +Packet별로 Unique한 Id (Milliseconds 형식) ※ 요청시 사용한 requestId 값과 동일 |
+
| 대화방ID + | +chatroomId + | +Long | +99536308621824000 + | +대화방 Id + | +
| 결과 + | +result + | ++ | + | 결과 | +
| 결과:코드 + | +result:code + | +Integer | +1000 + | +결과 코드 + | +
| 결과:(에러)내용 + | +result:msg + | +String | ++ | 결과 내용 + | +
| 결과:카운트 조회 + 목록 | +result:messageEntry + | +List |
+ + | + |
| 결과:카운트 조회 + 목록:메시지ID | +result:messageEntry:msgId + | +Long | ++ | 카운트 조회한 메시지의 + ID | +
| 결과:카운트 조회 + 목록:메시지발송시간 | +result:messageEntry:sentTime + | +Long | ++ | 카운트 조회한 메시지의 + sent time | +
| 결과:카운트 조회 + 목록:읽음 카운트 | +result:messageEntry:readCount + | +Integer | ++ | 해당 메시지에 대한 읽음 + 카운트 | +
Sample
+| Request | +Response | +
|---|
| POST /messenger/message/api/v1.0/message/messageReadCountRequest
+ HTTP/1.1 headers: + {"Accept": "application/json", "Authorization": "Bearer + ed114dc382ca16d5b43154fe5832a7", "Content-Type": "application/json", "x-device-id": + "1000145874", "Content-Length": "172"} body(암호화전): {"requestId": + 15784610001948974, "chatroomId": 99343295704997888, "messageEntry":[{"msgId": + 38635452485935, "sentTime":1472639462088}]} |
+ HTTP/1.1 200 OK Content-Type: + application/json Server: Message + Server {"requestId": 15784610001948974, "chatroomId": 99343295704997888, + "result": {"code": 1000}, "messageEntry":[{"msgId": 38635452485935, + "sentTime":1472639462088, "readCount":0}]} |
+
Error Code
+"메시지 API 공통 포맷" 부분 참조 (에러코드 부분)
+Knox Suite을 통해 토스트 알림을 전송합니다.
+| API | +URI | +Method | +Description | +
|---|
| 알림 전송 | +/sendnotification | +POST | +실시간 토스트 알림 전송 | +
Request Parameter
URL : + /notification/api/v2.0/sendnotification +| No. | +Properties | +Attribute | +Mandatory | +Parameter Type | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +연계 시스템 ID + | +System-ID | +Y | +Header | +String | +C60REST0001 | +발급받은 + 연계 ID | +
| 2 | +수신계정 | +targetAddress | +Y | +Body | +String Array | +["knoxportal@samsung.com"] | +알림수신인 + 메일계정 | +
| 3 | +이벤트속성 | +ntype | +Y | +Body | +String | +NEW | +이벤트의 + 속성 | +
| 4 | +시스템이름 | +systemname | +Y | +Body | +String | +Push service | +외부 + 시스템 식별 Name | +
| 5 | +알림표시명 | +from | +Y | +Body | +String | +녹스포털 테스트 | +외부 + 시스템 Toast 표시명(Local) | +
| 6 | +알림표시명(영) + | +fromGlobal | +Y | +Body | +String | +Knox Portal Test | +외부 + 시스템 Toast 표시명(Global) | +
| 7 | +Visual속성 + | +exVisualVO | +Y | +Body | +JsonString | +N/A | +알림 + Visual 속성 | +
| 8 | +토스트이름 | +template | +N | +Body | +String | +default template | +Pre-Defined된 Toast + 이름 | +
| 9 | +로고이미지 | +skin | +N | +Body | +String | +default skin | +Background 와 기본제공 + Logo 이미지 | +
| 10 | +영문사용여부 + | +global | +N | +Body | +String | +N | +Text에 + 설정된 global 사용여부 | +
| 11 | +로고표시여부 + | +logo | +N | +Body | +String | +Y | +logo + 표시여부 | +
| 12 | +로고이미지URL + | +logourl | +N | +Query | +String | +http://www.samsung.net/logo.jpg | +불러올 + logo 표시 이미지 url | +
| 13 | +Text속성 + | +exTextVO | +Y | +Query | +JsonStringArray | +N/A | +알림 + Text 속성 | +
| 14 | +표시문자열 | +content | +Y | +Body | +String | +한글기준 10자이내, 30byte 이내 | +표시 + 문자열 | +
| 15 | +표시문자열(영) + | +contentglobal | +N | +Body | +String | +Toast Title | +표시 + 문자열 Global | +
| 16 | +표시문자크기 + | +size | +N | +Body | +Int | +512 | +표시 + 문자열 문자 크기 | +
| 17 | +표시문자위치 + | +pos | +Y | +Body | +Int | +2 | +표시 + 문자열 위치 | +
| 18 | +표시문자스타일 + | +style | +N | +Body | +String | +BOLD | +표시 + 문자열 문자 스타일 | +
| 19 | +Color속성 + | +exColorVO | +N | +Body | +JsonString | +N/A | +표시 + 문자열 문자 색상 | +
| 20 | +표시문자Red + | +r | +Y | +Body | +Int | +255 | +RGB + 값중 red 값 | +
| 21 | +표시문자Green + | +g | +Y | +Body | +Int | +255 | +RGB + 값중 green 값 | +
| 22 | +표시문자Blue + | +b | +Y | +Body | +Int | +0 | +RGB + 값중 blue 값 | +
| 23 | +Action속성 + | +exActionsVO | +Y | +Body | +JsonString | +N/A | +알림 + Action 속성 | +
| 24 | +팝업여부 | +popup | +N | +Body | +String | +Y | +Toast + 클릭 시 links 값 중 rel 이 popup인 href 호출 | +
| 25 | +클릭허용여부 + | +clickable | +N | +Body | +String | +Y | +Toast + 영역 클릭 허용 여부 | +
| 26 | +Link속성 + | +exLinksVO | +N | +Body | +JsonString | +N/A | +알림 + Link 속성 | +
| 27 | +링크속성값 | +rel | +N | +Body | +String | +popup | +링크 식별 + 값 | +
| 28 | +링크URL | +href | +N | +Body | +String | +http://www.samsung.net | +link + URL | +
| 29 | +부가 옵션 | +hint | +Y | +Header | +String | +multibrowser | +multibrowser값 지정 시 녹스포털을 로그인한 브라우저의 Tab으로 href URL을 로딩
+ * IE 는 Popup으로 표시됨 |
+
Response Parameter
+| No. | +Properties | +Attribute | +Data Type | +Sample Data | +Note | +
|---|
| 1 | +API 호출 + 성공여부 | +Result | +String | +Success | +실시간알림 연계 + 성공여부 | +
| 2 | +에러코드 | +ErrorCode | +String | +null | +에러발생 + 시 코드 값 | +
| 3 | +응답메시지 및 알림 + ID | +Message and ID | +String | +Alarm Created, uid : 3cd8085ff2c4420bb4cf1828d6369ea4 | +응답 + 메시지 및 알림 ID | +
Sample
+| Request | +Response | +
|---|
+ {
+ |
+
+ {
+ |
+
Error Code
+| HTTP응답코드 | +에러코드 | +에러메시지 | +조치방안 | +
|---|
| 400 | +EX001 | +Notification information is null. | +알림 인풋 + 전체가 NULL일 경우 발생 | +
| 400 | +EX002 | +[ntype] value is NEW or RECALL. | +ntype + 값이 NEW이거나 RECALL이지 않은 경우 발생 | +
| 400 | +EX003 | +[from] is mendentory. | +from값이 + 입력되지 않은 경우 발생 | +
| 400 | +EX004 | +[fromGlobal] is mendentory. | +fromGlobal값이 입력되지 않은 경우 + 발생 | +
| 400 | +EX006 | +[systemname] is mendentory. | +systemname값이 입력되지 않은 경우 + 발생 | +
| 400 | +EX007 | +[exVisualVO] is mendentory. | +exVisualVO값이 입력되지 않은 경우 + 발생 | +
| 400 | +EX008 | +[exActionsVO] is mendentory. | +exActionsVO값이 입력되지 않은 경우 + 발생 | +
| 400 | +EX009 | +The length of [template] is max 10 characters. | +template 값이 10자 이상 입력될 경우 + 발생 | +
| 400 | +EX010 | +The length of [skin] is max 10 characters. | +skin 값이 + 10자 이상 입력될 경우 발생 | +
| 400 | +EX011 | +The value of [global] value is not Y or N. | +global + 값이 Y혹은 N이 입력되지 않는 경우 발생 | +
| 400 | +EX012 | +The value of [logo] value is not Y or N. | +logo 값이 + Y 혹은 N이 입력되지 않는 경우 발생 | +
| 400 | +EX013 | +The value of [logourl] must start with url pattern(http://). | +Logourl값이 정상적인 URL이 아닌 경우 + 발생(http://로 시작필요) | +
| 400 | +EX014 | +[exTextVO] is mendentory. | +exTextVO 값이 입력되지 않은 경우 + 발생 | +
| 400 | +EX015 | +[content] is mendentory. | +content + 값이 입력되지 않은 경우 발생 | +
| 400 | +EX016 | +[R,G,B] value range is 0 to 255. | +R,G,B + 값이 0~255범위에서 벗어나는 경우 발생 | +
| 400 | +EX017 | +For the requested search conditions, paging is not possible. | +href 값이 + 정상적인 URL이 아닌 경우 발생(http://로 시작필요) | +
| 400 | +EX018 | +The value of [template] encoding is supported UTF-8. | +Template 값이 UTF-8로 인코딩 되지 + 않은 경우 발생 | +
| 400 | +EX019 | +The value of [skin] encoding is supported UTF-8. | +Skin 값이 + UTF-8로 인코딩 되지 않은 경우 발생 | +
| 400 | +EX020 | +The value of [rel] is max 10 characters. | +Rel 값이 + 10자 이상 입력될 경우 발생 | +
| 400 | +EX021 | +The value of [rel] encoding is supported UTF-8. | +rel 값이 + UTF-8로 인코딩 되지 않은 경우 발생 | +
| 400 | +EX022 | +[targetAddress] is invalid. Check if an on-leave or retired person. | +targetAddress 값의 임직원 정보가 없는 + 경우 발생 | +
| 400 | +EX023 | +[size] value range is 0 to 1024. | +size 값이 + 0~1024범위에서 벗어나는 경우 발생 | +
| 400 | +EX024 | +[pos] value range is 1 to 3. | +pos 값이 + 1~3위에서 벗어나는 경우 발생 | +