From d201592372909e0f1f0d9e6b166bf6ee5d79d4cc Mon Sep 17 00:00:00 2001 From: "hehihoho3@gmail.com" Date: Wed, 10 Sep 2025 14:12:43 +0900 Subject: [PATCH] =?UTF-8?q?api=20=EC=82=AC=EC=9A=A9=EA=B0=80=EC=9D=B4?= =?UTF-8?q?=EB=93=9C=20=EC=9E=91=EC=84=B1=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../uia/web/EgovMypageRESTAPIController.java | 26 +- .../jsp/layout/include/defaultResource.jsp | 8 + .../webapp/WEB-INF/jsp/web/api/apiAtSpec.jsp | 178 +++++ .../webapp/WEB-INF/jsp/web/api/apiSpec.jsp | 25 +- .../WEB-INF/jsp/web/api/at/apiSpec_tab1.jsp | 415 +++++------ .../WEB-INF/jsp/web/api/at/apiSpec_tab2.jsp | 498 +++++++------ .../WEB-INF/jsp/web/api/at/apiSpec_tab4.jsp | 658 ++++++++---------- .../WEB-INF/jsp/web/api/at/apiSpec_tab5.jsp | 2 +- .../WEB-INF/jsp/web/api/at/apiSpec_tab6.jsp | 260 +++++-- .../WEB-INF/jsp/web/api/msg/apiSpec_tab3.jsp | 2 +- .../WEB-INF/jsp/web/api/top_subTepMenu.jsp | 83 +++ .../WEB-INF/jsp/web/api/top_tepMenu.jsp | 16 +- src/main/webapp/publish/js/content.js | 11 +- 13 files changed, 1330 insertions(+), 852 deletions(-) create mode 100644 src/main/webapp/WEB-INF/jsp/web/api/apiAtSpec.jsp create mode 100644 src/main/webapp/WEB-INF/jsp/web/api/top_subTepMenu.jsp diff --git a/src/main/java/itn/let/uat/uia/web/EgovMypageRESTAPIController.java b/src/main/java/itn/let/uat/uia/web/EgovMypageRESTAPIController.java index 652ccb3b..9b388049 100644 --- a/src/main/java/itn/let/uat/uia/web/EgovMypageRESTAPIController.java +++ b/src/main/java/itn/let/uat/uia/web/EgovMypageRESTAPIController.java @@ -250,11 +250,6 @@ public class EgovMypageRESTAPIController{ return "web/api/apiSpec"; } - /** - * @param model - * @return - * @throws Exception - */ @RequestMapping(value="/web/api/apiAtSpec.do") public String apiAtSpec(ModelMap model) throws Exception { @@ -265,9 +260,28 @@ public class EgovMypageRESTAPIController{ } model.addAttribute("loginVO", loginVO); - return "web/api/at/apiSpec"; +// return "web/api/apiAtSpec"; + return "web/api/apiAtSpec"; } + /** + * @param model + * @return + * @throws Exception + */ + /* @RequestMapping(value="/web/api/apiAtSpec.do") + public String apiAtSpec(ModelMap model) + throws Exception { + LoginVO loginVO = EgovUserDetailsHelper.isAuthenticated()? (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser():null; + + if(loginVO == null) { + return "redirect:/web/user/login/login.do"; + } + model.addAttribute("loginVO", loginVO); + + return "web/api/at/apiSpec"; + }*/ + /** * @param model * @return diff --git a/src/main/webapp/WEB-INF/jsp/layout/include/defaultResource.jsp b/src/main/webapp/WEB-INF/jsp/layout/include/defaultResource.jsp index 4e807072..3368ad2e 100644 --- a/src/main/webapp/WEB-INF/jsp/layout/include/defaultResource.jsp +++ b/src/main/webapp/WEB-INF/jsp/layout/include/defaultResource.jsp @@ -36,6 +36,11 @@ + + + + + @@ -80,6 +85,9 @@ + + + <%-- 20240110 matomo 사용 안함으로 인하여 주석처리 함 diff --git a/src/main/webapp/WEB-INF/jsp/web/api/apiAtSpec.jsp b/src/main/webapp/WEB-INF/jsp/web/api/apiAtSpec.jsp new file mode 100644 index 00000000..2ddc08aa --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/web/api/apiAtSpec.jsp @@ -0,0 +1,178 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> +<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> +<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> + + + + + + + +
+ +
+ + + + +
+
+

REST API 개발 가이드

+
+ + + + + + + <%--
+
+ +
    +
  • +
  • +
  • +
  • +
  • +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ +
+ +
+ +
+ +
+
--%> + + + +
+
+ +
    + +
  • +
  • +
  • +
  • +
  • +
  • +
  • + +
+
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+ + +
+ +
+
+ + + + + +
+
+
diff --git a/src/main/webapp/WEB-INF/jsp/web/api/apiSpec.jsp b/src/main/webapp/WEB-INF/jsp/web/api/apiSpec.jsp index 9c1d4124..1de0cb27 100644 --- a/src/main/webapp/WEB-INF/jsp/web/api/apiSpec.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/api/apiSpec.jsp @@ -2,11 +2,21 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> + + + +
@@ -38,14 +49,8 @@ $(document).ready(function(){

REST API 개발 가이드

- -
-
    -
  • -
  • -
  • -
-
+ +
@@ -60,15 +65,11 @@ $(document).ready(function(){
- -
- -
diff --git a/src/main/webapp/WEB-INF/jsp/web/api/at/apiSpec_tab1.jsp b/src/main/webapp/WEB-INF/jsp/web/api/at/apiSpec_tab1.jsp index 6a4e1f99..3c9fde23 100644 --- a/src/main/webapp/WEB-INF/jsp/web/api/at/apiSpec_tab1.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/api/at/apiSpec_tab1.jsp @@ -7,210 +7,233 @@ -
- -
Request
-
-
-

Request

- - - - - - - - - - - - - - - - - - - - - - -
API Request Http Method, 프로토콜, HOST, Service Port - 정보 테이블
Http MethodPOST
프로토콜HTTP/1.1
HOSTapi.munjaon.co.kr
Service Port443
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
문자발송 API Request 키 종류 및 설명, 타입, 필수 여부 테이블
설명타입필수
mberId사용자 IDStringO
accessKey인증용 API KeyStringO
-
-

※ HTTPS 프로토콜을 사용하여 POST로 요청합니다.

-

※ 문자 텍스트 용량(byte) : 한글 1자당 2byte, 영문/숫자 1자당 1byte

-
-
-
-
[Example]
-
-

-
-

- "mberId":"홍길동" -

-

- ,"accessKey":"XXXXXXXXXXXXXX414050694b953" -

+ +
Request
+
+
+

Request

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
API Request Http Method, 프로토콜, HOST, Service Port, Endpoint 정보 테이블
Http MethodPOST
프로토콜HTTPS/1.1
HOSTapi.munjaon.co.kr
Service Port443
Endpoint/api/kakao/inqry/chnlId
-

-
- - -
Response
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
문자발송 API Response 키 종류 및 설명, 타입 테이블
설명타입
resultCode성공 여부 ("0" 이면 성공, 그 외는 실패)String
data응답 결과 객체 (성공 시 배열, 실패 시 메시지)Array<Object>
data[].userId사용자 IDString
data[].senderKey발신자 키String
data[].phoneNumber수신자 전화번호String
data[].yellowId카카오톡 채널 IDString
data[].firstRegistPnttm최초 등록 시각 (yyyy‑MM‑dd HH:mm:ss)String
data[].firstRegisterId최초 등록자 IDString
-
-

※ JSON 객체로 응답합니다.

-
-
-
-
- [Example]O 성공 - 예시 -
-
-

-
-

- "resultCode":"0" -

-

- ,"data"{ -

-
-

- ,"senderKey":"6691434xxxxxxxxxxxxxxxxxxxxxxxxx" -

-

- ,"phoneNumber":"010xxxxxxxx" -

-

- ,"yellowId":"@ID" -

-

- ,"firstRegistPnttm":"2025-10-05 18:08:58" -

-

- ,"firstRegisterId":"userId" -

-
-

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
채널ID 조회 API Request 키 종류 및 설명, 타입, 필수 여부 테이블
설명타입필수
mberId사용자 IDStringO
accessKey인증용 API KeyStringO
test_yn테스트 데이터 여부 (YS: 성공 테스트, YF: 실패 테스트)StringX
+
+

※ HTTPS 프로토콜을 사용하여 POST로 요청합니다.

+

※ Content-Type: application/json

-

-
-
-
- [Example]X 실패 예시 -
-
-

-
-

- "resultCode":"401" -

-

- ,"message":"Unauthorized" -

+ +
+
[Example]
+
+
+					
+{
+
+	"mberId": "문자온",
+	
+	"accessKey": "XXXXXXXXXXXXXXXXXXXXbaa01d8d91",
+	
+	"test_yn": ""
+}
+					
+				
-

+ + + +
Response
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
채널ID 조회 API Response 키 종류 및 설명, 타입 테이블
설명타입
resultCode성공 여부("0" 이외는 실패)String
data조회 결과 목록(성공 시 배열, 실패 시 오류 메시지)Array | String
[data][i].senderKey발신 프로필 SenderKeyString
[data][i].phoneNumber대표 전화번호String
[data][i].yellowId카카오 채널(옐로아이디)String
[data][i].frstRegistPnttm최초 등록 일시(YYYY-MM-DD HH:mm:ss)String
[data][i].frstRegisterId최초 등록자 IDString
localDateTime서버 처리 일시(ISO-8601)String
+
+

※ JSON 객체로 응답합니다.

+
+
+ +
+
[Example]O 성공 예시
+
+
+					
+{
+	"resultCode": "0",
+	
+	"data": [
+	
+		{
+		
+			"senderKey": "test_sender_key_001",
+			
+			"phoneNumber": "02-1234-0000",
+			
+			"yellowId": "@test_channel_001",
+			
+			"frstRegistPnttm": "2025-09-09 12:44:21",
+			
+			"frstRegisterId": "test_id_one"
+			
+		},
+		
+		{
+		
+			"senderKey": "test_sender_key_002",
+			
+			"phoneNumber": "02-1234-0001",
+			
+			"yellowId": "@test_channel_002",
+			
+			"frstRegistPnttm": "2025-09-09 12:44:21",
+			
+			"frstRegisterId": "test_id_tow"
+			
+		}
+		
+	],
+	
+	"localDateTime": "2025-09-09T12:44:21.624464"
+	
+}
+					
+				
+
+
+ +
+
[Example]X 실패 예시
+
+

+{
+
+	"resultCode": "4010",
+	
+	"data": "인증 정보가 올바르지 않습니다.(mberId/accessKey)"
+	
+}
+				
+
+
+
-
diff --git a/src/main/webapp/WEB-INF/jsp/web/api/at/apiSpec_tab2.jsp b/src/main/webapp/WEB-INF/jsp/web/api/at/apiSpec_tab2.jsp index 67d57e4a..5aa101f7 100644 --- a/src/main/webapp/WEB-INF/jsp/web/api/at/apiSpec_tab2.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/api/at/apiSpec_tab2.jsp @@ -1,232 +1,272 @@ -<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + + +
    +
  • - API를 통해서 템플릿 목록을 조회할 수 111있습니다.
  • +
  • - API를 통해서 템플릿 목록을 조회할 수 111있습니다.
  • +
  • - API를 통해서 템플릿 목록을 조회할 수 111있습니다.
  • +
  • - API를 통해서 템플릿 목록을 조회할 수 111있습니다.
  • +
+
+ +
Request
+
+
+

Request

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
API Request Http Method, 프로토콜, HOST, Service Port, Endpoint 정보 테이블
Http MethodPOST
프로토콜HTTPS/1.1
HOSTapi.munjaon.co.kr
Service Port443
Endpoint/api/kakao/inqry/templates/list
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
템플릿 목록 조회 API Request 키 종류 및 설명, 타입, 필수 여부 테이블
설명타입필수
mberId사용자 IDStringO
accessKey인증용 API KeyStringO
senderKey발신 프로필 SenderKeyStringO
test_yn테스트 데이터 여부 (YS: 성공 테스트, YF: 실패 테스트)StringX
+
+

※ HTTPS 프로토콜을 사용하여 POST로 요청합니다.

+

※ Content-Type: application/json

+
+
+ +
+
[Example]
+
+
+					
+{
+
+	"mberId": "dudgusw",
+	
+	"accessKey": "3429312e6a2c732188d4cc7d15d8a1baa01d8d91",
+	
+	"senderKey": "669143473b1af459628b8bdf2f48da090c8895de",
+	
+	"test_yn": ""
+}
+					
+				
+
+
+ + + +
Response
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
템플릿 목록 조회 API Response 키 종류 및 설명, 타입 테이블
설명타입
resultCode성공 여부("0" 이외는 실패)String
data조회 결과 목록(성공 시 배열, 실패 시 오류 메시지)Array | String
[data][i].senderKey발신 프로필 SenderKeyString
[data][i].templateCode템플릿 코드String
[data][i].templateName템플릿 명String
[data][i].createdAt템플릿 생성 일시String
[data][i].modifiedAt템플릿 수정 일시String
[data][i].serviceStatus서비스 상태(등록완료, 승인대기 등)String
localDateTime서버 처리 일시(ISO-8601)String
+
+

※ JSON 객체로 응답합니다.

+
+
+ +
+
[Example]O 성공 예시
+
+
+					
+{
+	"resultCode": "0",
+	
+	"data": [
+	
+		{
+		
+			"senderKey": "test_sender_key_001",
 			
-                        
    -
  • - API를 통해서 다른 내용의 문자를 대량으로 전송할 수 있습니다.
  • -
  • - 발신번호는 문자온 사이트를 통해 사전등록 후 이용하실 수 있습니다.(마이페이지-발신번호 관리 메뉴 이용)
  • -
  • - 문자 내용이 "90byte"를 초과하는 경우 장문(LMS)으로 자동 전환됩니다.
  • -
+ "templateCode": "TEST_TEMPLATE_001", + + "templateName": "테스트 템플릿 001", + + "createdAt": "2025-01-01 10:00:00", + + "modifiedAt": "2025-01-01 10:00:00", + + "serviceStatus": "REG(등록완료)" + + }, + + { + + "senderKey": "test_sender_key_001", + + "templateCode": "TEST_TEMPLATE_002", + + "templateName": "테스트 템플릿 002", + + "createdAt": "2025-01-01 11:00:00", + + "modifiedAt": "2025-01-01 11:00:00", + + "serviceStatus": "REG(등록완료)" + + }, + + { + + "senderKey": "test_sender_key_002", + + "templateCode": "TEST_TEMPLATE_003", + + "templateName": "테스트 템플릿 003", + + "createdAt": "2025-01-01 12:00:00", + + "modifiedAt": "2025-01-01 12:00:00", + + "serviceStatus": "PENDING(승인대기)" + + } + + ], + + "localDateTime": "2025-09-09T14:18:38.445175" + +} +
+
+
+
-
- -
Request
-
-
-

Request

- - - - - - - - - - - - - - - - - - - - - - -
API Request Http Method, 프로토콜, HOST, Service Port 정보 테이블
Http MethodPOST
프로토콜HTTP/1.1
HOSTapi.munjaon.co.kr
Service Port443
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
문자발송 API Request 키 종류 및 설명, 타입, 필수 여부 테이블
설명타입필수
mberId사용자 IDStringO
accessKey인증용 API KeyStringO
senderKey발신 프로필 KeyStringO
-
-

※ 문자 텍스트 용량(byte) : 한글 1자당 2byte, 영문/숫자 1자당 1byte

-
-
-
-
[Example]
-
-

-
-

"mberId":"홍길동"

-

,"accessKey":"414050694b953XXXXXXXXXXXXXX"

-

,"senderKey":"669143473b1af459628b8bdXXXXXXXXXXXXXX"

-
-

-
-
- - -
Response
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
문자발송(대량) API Response 키 종류 및 설명, 타입 테이블
설명타입
resultCode성공 여부("0" 아니면 실패)String
data템플릿 정보 리스트Array
[data].senderKey발신 프로필 키String
[data].templateCode템플릿 코드String
[data].templateName템플릿 이름String
[data].createdAt생성일시String
[data].modifiedAt수정일시String
[data].serviceStatus템플릿 상태
(REG: 등록, REQ: 검수요청, REJ: 반려, -STP: 차단, RDY: 발송전, ACT: 정상, DMT: 휴면, BLK: -차단)
String
-
-

※ JSON 객체로 응답합니다.

-
-
-
-
[Example]O 성공 예시
+
+
[Example]X 실패 예시
+
+

+{
 
-								
-

-
-

- "resultCode":"0" -

-

- ,"data"{ -

-
-

- ,"senderKey":"669143473b1af459628xxxxxxxxxxxxxxxxxxxxx" -

-

- ,"templateCode":"bizp_20250527112232xxxxxxxxxxxxx" -

-

- ,"templateName":"템플릿 명" -

-

- ,"createdAt":"2025-05-27 11:22:33" -

-

- ,"modifiedAt":"2025-05-27 11:22:33" -

-

- ,"serviceStatus":"REG(등록완료)" -

-
-

-

,{

-
-

- ,"senderKey":"669143473b1af459628xxxxxxxxxxxxxxxxxxxxx" -

-

- ,"templateCode":"bizp_20250527112232xxxxxxxxxxxxx" -

-

- ,"templateName":"템플릿 명2" -

-

- ,"createdAt":"2025-05-27 11:22:33" -

-

- ,"modifiedAt":"2025-05-27 11:22:33" -

-

- ,"serviceStatus":"RDY(대기)" -

-
-

-
-

-
-
-
-
[Example]X 실패 예시
-
-

-
-

"resultCode":"4099"

-

,"msg":"기타 시스템 오류"

-
-

-
-
- -
+ "resultCode": "4010", + + "data": "인증 정보가 올바르지 않습니다.(mberId/accessKey)" + +} + +
+
+ +
+ diff --git a/src/main/webapp/WEB-INF/jsp/web/api/at/apiSpec_tab4.jsp b/src/main/webapp/WEB-INF/jsp/web/api/at/apiSpec_tab4.jsp index 44d4a720..aa127b65 100644 --- a/src/main/webapp/WEB-INF/jsp/web/api/at/apiSpec_tab4.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/api/at/apiSpec_tab4.jsp @@ -1,353 +1,307 @@ -<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> - -
    -
  • - 전송결과 조회의 "msgGroupId"를 사용하여 전송된 문자의 상세결과를 수신번호별로 조회할 수 있습니다.
  • -
  • - 전송결과가 "대기"인 경우에는 최종 결과 확인까지 최대 72시간까지 소요됩니다.
  • -
+<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> -
- -
Request
-
-
-

Request

- - - - - - - - - - - - - - - - - - - - - - -
API Request Http Method, 프로토콜, HOST, Service Port 정보 테이블
Http MethodPOST
프로토콜HTTP/1.1
HOSTapi.munjaon.co.kr
Service Port443
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
상세결과 조회 API Request 키 종류 및 설명, 타입, 필수 여부 테이블
설명타입필수
mberId사용자 IDStringO
accessKey인증용 API KeyStringO
msgGroupId메시지 그룹 IDStringO
page페이지 번호StringX
pageSize페이지당 출력 개수StringX
test_yn테스트 데이터 여부StringX
-
-

※ HTTPS 프로토콜을 사용하여 POST로 요청합니다.

-
-
-
-
[Example]
-
-

-
-

"mberId":"홍길동"

-

,"accessKey":"XXXXXXXXXXXXXX414050694b953"

-

,"msgGroupId":"MSGGID_0000000011452"

-

,"page":""

-

,"pageSize":""

-

,"test_yn":""

-
-

-
-
- - -
Response
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
상세결과 조회 API Response 키 종류 및 설명, 타입 테이블
설명타입
resultCode성공 여부("0" 아니면 실패)String
data결과값 객체(성공 : 데이터, 실패 : 메시지)Object
[data].message문자String
[data].next_yn다음 페이지 여부String
[data].objectList결과값 목록Object List
[data].msgGroupId메시지 그룹 IDString
[data].msgId메시지 IDString
[data].msgTypeName문자 구분명(단문, 장문, 그림)String
[data].msgType메시지 타입(4 : 단문, 6 : 장문)String
[data].callFrom발신자 번호String
[data].callTo수신자 번호String
[data].msgGroupCnt문자 발송 건수String
[data].sCnt성공 건수String
[data].fCnt실패 건수String
[data].wCnt대기 건수String
[data].msgResult발송 결과(성공 : S, 실패 : F)String
[data].smsTxt문자 내용String
[data].subject제목String
[data].reqdate발송 일자String
[data].curState전송 처리 결과값String
[data].userId사용자 IDString
[data].regdate등록 일자String
[data].reserveCYn예약 취소 여부String
[data].ttlCnt전체 요청 수String
[data].remainMsgCnt남은 문자 건수String
[data].totMsgCnt전체 문자 개수String
-
-

※ JSON 객체로 응답합니다.

-
-
-
-
[Example]O 성공 예시
-
-

-
-

"resultCode":"0"

-

,"data":[

-

-
-

"resultCode":"0"

-

,"message": null

-

,"next_yn":"n"

-

,"msgGroupId":"MSGGID_0000000000000"

-

,"objectList":[

-

-
-

"msgTypeName":"단문(SMS)"

-

,"msgType":"4"

-

,"callFrom":"01011112222"

-

,"callTo":"01011112223"

-

,"msgGroupCnt":"2"

-

,"msgGroupId":"MSGGID_0000000013340"

-

,"msgId":"MSGID_0000000000001"

-

,"scnt":null

-

,"fcnt":null

-

,"wcnt":null

-

,"msgResult":"S"

-

,"smsTxt":"문자 내용 단문 예제"

-

,"subject":null

-

,"reqdate":"2023-06-13 17:48:08"

-

,"curState":"3"

-

,"userId":"testuser"

-

,"regdate":"2023-06-13 17:48:07"

-

,"reserveCYn":"N"

-

,"ttlCnt":"10"

-

,"remainMsgCnt":"0"

-

,"totMsgCnt":"10"

-
-

-

,{

-
-

"msgTypeName":"단문(SMS)"

-

,"msgType":"4"

-

,"callFrom":"01011112222"

-

,"callTo":"01011112223"

-

,"msgGroupCnt":"2"

-

,"msgGroupId":"MSGGID_0000000013340"

-

,"msgId":"MSGID_0000000000002"

-

,"scnt":null

-

,"fcnt":null

-

,"wcnt":null

-

,"msgResult":"S"

-

,"smsTxt":"문자 내용 단문 예제"

-

,subject":null

-

,reqdate":"2023-06-13 17:48:09"

-

,"curState":"3"

-

,"userId":"testuser"

-

,"regdate":"2023-06-13 17:48:07"

-

,"reserveCYn":"N"

-

,"ttlCnt":"10"

-

,"remainMsgCnt":"0"

-

,"totMsgCnt":"10"

-

-
-

-
-

-

-
-

-
-
-
-
[Example]X 실패 예시
-
-

-
-

"resultCode":"4099"

-

,"data":"기타 시스템 오류"

-
-

-
-
- -
+ +
    +
  • - API를 통해서 알림톡을 발송할 수 있습니다.
  • +
  • - 사전에 등록된 SenderKey 및 승인된 템플릿을 사용해야 합니다.
  • +
  • - 대체문자(subMsgTxt) 발송 여부는 subMsgSendYn으로 제어합니다.
  • +
+
+ +
Request
+
+
+

Request

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
API Request Http Method, 프로토콜, HOST, Service Port, Endpoint 정보 테이블
Http MethodPOST
프로토콜HTTPS/1.1
HOSTapi.munjaon.co.kr
Service Port443
Endpoint/api/kakao/at/sendMsg
+
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
알림톡 발송 API Request 키 종류 및 설명, 타입, 필수 여부 테이블
설명타입필수
mberId사용자 IDStringO
accessKey인증용 API KeyStringO
senderKey발신 프로필 SenderKeyStringO
templateCode알림톡 템플릿 코드StringO
subMsgSendYn대체문자 발송 여부 (Y: 발송, N: 미발송)StringX
callFrom발신자 번호StringO
callTo_[i]수신자 번호(다건 가능)StringO
templateTitle_[i]치환용 템플릿 타이틀StringX
templateContent_[i]치환용 템플릿 내용StringO
subMsgTxt_[i]대체문자 내용StringX
test_yn테스트 데이터 여부 (YS: 성공 테스트, YF: 실패 테스트)StringX
+
+

※ HTTPS 프로토콜을 사용하여 POST로 요청합니다.

+

※ Content-Type: application/json

+
+
+ +
+
[Example]
+
+
+					
+{
+
+	"mberId": "dudgusw",
+	
+	"accessKey": "3429312e6a2c732188d4cc7d15d8a1baa01d8d91",
+	
+	"senderKey": "669143473b1af459628b8bdf2f48da090c8895de",
+	
+	"templateCode": "bizp_2025031410525347794704159",
+	
+	"subMsgSendYn": "Y",
+	
+	"callFrom": "010-9341-4986",
+	
+	"callTo_1": "01083584250",
+	
+	"callTo_2": "01011111111",
+	
+	"templateTitle_1": "테스트 이호영2222",
+	
+	"templateTitle_2": "테스트 이호영2111",
+	
+	"templateContent_1": "테스트 이호영\\n타이틀 버튼 치환 테스트입니다.",
+	
+	"templateContent_2": "테스트 이호영2\\n타이틀 버튼 치환 테스트입니다.",
+	
+	"subMsgTxt_1": "대체문자 발송",
+	
+	"subMsgTxt_2": "대체문자 발송2",
+	
+	"test_yn": "YS"
+}
+					
+				
+
+
+ + + +
Response
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
알림톡 발송 API Response 키 종류 및 설명, 타입 테이블
설명타입
resultCode성공 여부("0" 이외는 실패)String
data발송 결과 객체Object
[data].resultCode성공 여부("0" 이외는 실패)String
[data].msgGroupId메시지 그룹 IDString
[data].successCnt성공 건수String
[data].blockCnt수신거부 건수String
[data].failCnt전송 실패 건수String
[data].msgType메시지 타입(AT: 알림톡)String
[data].test_yn테스트 여부String
localDateTime서버 처리 일시(ISO-8601)String
+
+

※ JSON 객체로 응답합니다.

+
+
+ +
+
[Example]O 성공 예시
+
+
+					
+{
+	"resultCode": "0",
+	
+	"data": {
+	
+		"resultCode": "0",
+		
+		"msgGroupId": "MSGGID_AT_1757467849001",
+		
+		"successCnt": "2",
+		
+		"blockCnt": "0",
+		
+		"failCnt": "0",
+		
+		"msgType": "AT",
+		
+		"test_yn": "YS"
+		
+	},
+	
+	"localDateTime": "2025-09-10T10:30:49.001636"
+	
+}
+					
+				
+
+
+ +
+
[Example]X 실패 예시
+
+

+{
+
+	"resultCode": "2080",
+	
+	"data": "친구톡은 20시 50분부터 익일 08시까지 발송이 제한됩니다."
+	
+}
+				
+
+
+ +
+ +
diff --git a/src/main/webapp/WEB-INF/jsp/web/api/at/apiSpec_tab5.jsp b/src/main/webapp/WEB-INF/jsp/web/api/at/apiSpec_tab5.jsp index df406dc3..e31593b7 100644 --- a/src/main/webapp/WEB-INF/jsp/web/api/at/apiSpec_tab5.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/api/at/apiSpec_tab5.jsp @@ -1,7 +1,7 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    -
  • - 보유캐시로 발송 가능한 문자의 건수를 단문(SMS), 장문(LMS), 그림(MMS)별로 각각 확인할 수 있습니다.
  • +
  • - 보11유캐시로 발송 가능한 문자의 건수를 단문(SMS), 장문(LMS), 그림(MMS)별로 각각 확인할 수 있습니다.
  • - 위 문자유형별 발송 가능건수는 개인별로 적용된 단가를 기준으로 산출되며, "첫결제 이벤트"는 적용되지 않습니다.
diff --git a/src/main/webapp/WEB-INF/jsp/web/api/at/apiSpec_tab6.jsp b/src/main/webapp/WEB-INF/jsp/web/api/at/apiSpec_tab6.jsp index df406dc3..24611372 100644 --- a/src/main/webapp/WEB-INF/jsp/web/api/at/apiSpec_tab6.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/api/at/apiSpec_tab6.jsp @@ -1,8 +1,9 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> -
    -
  • - 보유캐시로 발송 가능한 문자의 건수를 단문(SMS), 장문(LMS), 그림(MMS)별로 각각 확인할 수 있습니다.
  • -
  • - 위 문자유형별 발송 가능건수는 개인별로 적용된 단가를 기준으로 산출되며, "첫결제 이벤트"는 적용되지 않습니다.
  • +
      +
    • - 문자온 사이트 및 API를 통해 전송된 발송내역을 조회할 수 있습니다.
    • +
    • - 문자 발송내역은 날짜별로 조회되며, 최근 3개월까지만 조회 가능합니다.
    • +
    • - 발신번호별 문자 발송내역 조회 기능은 제공되지 않습니다.
    @@ -33,12 +34,16 @@ Service Port 443 + + Endpoint + /api/inqry/hstry +
- + @@ -65,7 +70,37 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
발송가능 건수 API Request 키 종류 및 설명, 타입, 필수 여부 테이블전송결과 조회 API Request 키 종류 및 설명, 타입, 필수 여부 테이블
인증용 API Key String O
page페이지 번호StringX
pageSize페이지당 출력 개수StringX
startDate시작 일자StringX
endDate마감 일자StringX
test_yn테스트 데이터 여부StringX
@@ -77,8 +112,13 @@

-

"mberId":"String"

-

,"accessKey":"String"

+

"mberId":"홍길동"

+

,"accessKey":"XXXXXXXXXXXXXX414050694b953"

+

,"page":""

+

,"pageSize":""

+

,"startDate":""

+

,"endDate":""

+

,"test_yn":""

@@ -86,9 +126,9 @@
Response
-
+
- + @@ -112,44 +152,124 @@ - - - - - - - - - - - - - - - - - + + - - + + + + + + + - - + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -164,18 +284,68 @@

"resultCode":"0"

-

,"data"

+

,"data":[

+

-

"longPrice":"50"

-

,"longSendPsbltEa":"19651"

-

,"mberMoney":"982586.7"

-

,"message":null

-

,"picturePrice":"90"

-

,"pictureSendPsbltEa":"10917"

-

,"shortPrice":"18"

-

,"shortSendPsbltEa":"54588"

-
-

+

"resultCode":"0"

+

,"message": null

+

,"next_yn":"n"

+

,"msgGroupId":"MSGGID_0000000000000"

+

,"objectList":[

+

+
+

"msgTypeName":"단문(SMS)"

+

,"msgType":"4"

+

,"callFrom":"01011112222"

+

,"callTo":"01011112223"

+

,"msgGroupCnt":"2"

+

,"msgGroupId":"MSGGID_0000000013340"

+

,"msgId":"MSGID_0000000000001"

+

,"scnt":"2"

+

,"fcnt":"0"

+

,"wcnt":"0"

+

,"msgResult":"S"

+

,"smsTxt":"문자 내용 단문 예제"

+

,"subject":null

+

,"reqdate":"2023-06-13 17:48:07"

+

,"curState":"3"

+

,"userId":"testuser"

+

,"regdate":"2023-06-13 17:48:07"

+

,"reserveCYn":"N"

+

,"ttlCnt":"1"

+

,"remainMsgCnt":"40"

+

,"totMsgCnt":"70"

+
+

+

,{

+
+

"msgTypeName":"장문(LMS)"

+

,"msgType":"6"

+

,"callFrom":"01011112222"

+

,"callTo":"01011112223"

+

,"msgGroupCnt":"1"

+

,"msgGroupId":"MSGGID_0000000013341"

+

,"msgId":"MSGID_0000000000002"

+

,"scnt":"1"

+

,"fcnt":"0"

+

,"wcnt":"0"

+

,"msgResult":"S"

+

,"smsTxt":"문자 내용 장문 예제"

+

,subject":null

+

,reqdate":"2023-06-02 11:46:50"

+

,"curState":"3"

+

,"userId":"testuser"

+

,"regdate":"2023-06-02 11:46:49"

+

,"reserveCYn":"N"

+

,"ttlCnt":"1"

+

,"remainMsgCnt":"40"

+

,"totMsgCnt":"70"

+

+
+

+
+

+

@@ -185,11 +355,11 @@

-

"resultCode":"5099"

+

"resultCode":"3099"

,"data":"기타 시스템 오류"

- + diff --git a/src/main/webapp/WEB-INF/jsp/web/api/msg/apiSpec_tab3.jsp b/src/main/webapp/WEB-INF/jsp/web/api/msg/apiSpec_tab3.jsp index 32fae9e8..8805e266 100644 --- a/src/main/webapp/WEB-INF/jsp/web/api/msg/apiSpec_tab3.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/api/msg/apiSpec_tab3.jsp @@ -1,7 +1,7 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    -
  • - 문자온 사이트 및 API를 통해 전송된 문자 발송내역을 조회할 수 있습니다.
  • +
  • - 문자온 사이트 및 API를 통해 전송된 발송내역을 조회할 수 있습니다.
  • - 문자 발송내역은 날짜별로 조회되며, 최근 3개월까지만 조회 가능합니다.
  • - 발신번호별 문자 발송내역 조회 기능은 제공되지 않습니다.
diff --git a/src/main/webapp/WEB-INF/jsp/web/api/top_subTepMenu.jsp b/src/main/webapp/WEB-INF/jsp/web/api/top_subTepMenu.jsp new file mode 100644 index 00000000..463909ce --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/web/api/top_subTepMenu.jsp @@ -0,0 +1,83 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> +<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> + + + + +
+
    +
  • +
  • +
  • +
+
diff --git a/src/main/webapp/WEB-INF/jsp/web/api/top_tepMenu.jsp b/src/main/webapp/WEB-INF/jsp/web/api/top_tepMenu.jsp index a1035312..a58e6d4d 100644 --- a/src/main/webapp/WEB-INF/jsp/web/api/top_tepMenu.jsp +++ b/src/main/webapp/WEB-INF/jsp/web/api/top_tepMenu.jsp @@ -17,12 +17,17 @@ $(document).ready(function(){ * active로 활성화 시킴 */ $('.tabType4 .tab').each(function(index) { - var idAttr = $(this).children("button").attr("id"); - idAttr += '.do'; + var $btn = $(this).children("button"); + var id = $btn.attr("id"); - if(idAttr.indexOf(lastPart) > -1){ - $(this).addClass('active'); - } + // 개발가이드 그룹 + if (id === 'apiSpec' && /api.*Spec\.do$/.test(lastPart)) { + $(this).addClass('active'); + } + // 나머지 기본 처리 + else if (lastPart.indexOf(id) > -1) { + $(this).addClass('active'); + } }); // 페이지 이동 이벤트 @@ -99,7 +104,6 @@ function customPopup(){
  • -<%--
  • --%>
diff --git a/src/main/webapp/publish/js/content.js b/src/main/webapp/publish/js/content.js index 6062e5d0..80d64c5c 100644 --- a/src/main/webapp/publish/js/content.js +++ b/src/main/webapp/publish/js/content.js @@ -739,11 +739,14 @@ function TabType2(obj, tabId) { $('.tab_depth3.tDep2_cateCode a').removeClass('on'); $('.tab_depth3.tDep2_cateCode a').eq(0).addClass('on'); //해시태그 - $('.tab_depth4 .tDep2_hashTag a').removeClass('on'); - $('.tab_depth4 .tDep2_hashTag a').eq(0).addClass('on'); +// $('.tab_depth4 .tDep2_hashTag a').removeClass('on'); +// $('.tab_depth4 .tDep2_hashTag a').eq(0).addClass('on'); +// +// $(".api_guide_con").not($tabCn).removeClass("current"); +// $(".api_guide_con").not($tabCn).fadeOut(0); - $(".api_guide_con").not($tabCn).removeClass("current"); - $(".api_guide_con").not($tabCn).fadeOut(0); ++ $(".api_guide_con").not($tabCn).removeClass("current").fadeOut(0); ++ $(".api_guide").not($tabCn).removeClass("current").fadeOut(0); $(".api_guide_con").not($tabCn).removeClass("current"); $(".api_guide_con").not($tabCn).fadeOut(0);
발송가능 건수 API Response 키 종류 및 설명, 타입 테이블전송결과 조회 API Response 키 종류 및 설명, 타입 테이블
결과값 객체(성공 : 데이터, 실패 : 메시지) Object
[data].longPrice장문 단가String
[data].longSendPsbltEa장문 발송 가능 건수String
[data].mberMoney현재 보유 금액String
[data].message 문자 String
[data].picturePrice그림문자 단가[data].next_yn다음 페이지 여부 String
[data].pictureSendPsbltEa그림문자 발송 가능 건수[data].objectList결과값 목록Object List
[data].msgGroupId메시지 그룹 ID String
[data].shortPrice단문 단가[data].msgId메시지 ID String
[data].shortSendPsbltEa단문 발송 가능 건수[data].msgTypeName문자 구분명(단문, 장문, 그림)String
[data].msgType메시지 타입(4 : 단문, 6 : 장문)String
[data].callFrom발신자 번호String
[data].callTo수신자 번호String
[data].msgGroupCnt문자 발송 건수String
[data].sCnt성공 건수String
[data].fCnt실패 건수String
[data].wCnt대기 건수String
[data].msgResult발송 결과(성공 : S, 실패 : F)String
[data].smsTxt문자 내용String
[data].subject제목String
[data].reqdate발송 일자String
[data].curState전송 처리 결과값String
[data].userId사용자 IDString
[data].regdate등록 일자String
[data].reserveCYn예약 취소 여부String
[data].ttlCnt전체 요청 수String
[data].remainMsgCnt남은 문자 건수String
[data].totMsgCnt전체 문자 개수 String