5585 api 오류 수정
This commit is contained in:
parent
8b8da221b3
commit
d6df56b7b7
@ -20,33 +20,25 @@
|
||||
final String encodingType = "UTF-8";
|
||||
final String boundary = "____boundary____";
|
||||
|
||||
|
||||
//비즈 아이디, APIKEY - 보안을 위해 실제 서비스 시에는 이곳에 bizId와 apiKey 값을 적어서 사용
|
||||
//실제서비스용
|
||||
final String accessKey = "3429312e6a2c732188d4cc7d15d8a1baa01d8d91"; //발급받은 api key
|
||||
|
||||
//테스트용
|
||||
//String bizId = request.getParameter("p_bizId"); //비즈 아이디
|
||||
//String mberId = request.getParameter("p_mberId"); //문자온 로그인 아이디
|
||||
//String apiKey = request.getParameter("p_apiKey"); //발급받은 api key
|
||||
|
||||
/******************** 전송 요청 URL ********************/
|
||||
final String apiUrl = "http://119.193.215.98:8087/api/kakao/inqry/templates/detail"; //템플릿 상세 조회 API URL
|
||||
// final String apiUrl = "http://localhost:8088/api/kakao/inqry/templates/detail"; //템플릿 상세 조회 API URL
|
||||
|
||||
/******************** 전송 정보 ********************/
|
||||
//필수 값
|
||||
|
||||
//회원아이디, APIKEY - 보안을 위해 실제 서비스 시에는 이곳에 mberId와 apiKey 값을 적어서 사용
|
||||
String p_senderKey = request.getParameter("p_senderKey"); //발신프로필키
|
||||
String p_templateCode = request.getParameter("p_templateCode"); //템플릿코드
|
||||
String p_mberId = request.getParameter("p_mberId"); //발신프로필키
|
||||
|
||||
Map<String, String> params = new HashMap<String, String>();
|
||||
|
||||
|
||||
System.out.println("accessKey : "+ accessKey); //비즈 아이디
|
||||
System.out.println("mberId : "+ p_mberId); //비즈 아이디
|
||||
System.out.println("senderKey : "+ p_senderKey); //발신프로필키
|
||||
System.out.println("templateCode : "+ p_templateCode); //템플릿코드
|
||||
|
||||
|
||||
//기본 전송 데이터
|
||||
params.put("accessKey", accessKey); //비즈 아이디
|
||||
params.put("mberId", p_mberId); //비즈 아이디
|
||||
@ -102,8 +94,8 @@
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
/**************** 템플릿 상세 조회 Response 예제 ******************/
|
||||
/* "resultCode": 결과코드, "objectList": 템플릿 상세 정보 */
|
||||
/* "msg": 결과 메시지, "templateCode": 템플릿코드, "templateName": 템플릿명 */
|
||||
/* "template": 템플릿 내용, "buttons": 버튼 정보, "quickReplies": 퀵 리플라이 */
|
||||
/**************** 채널ID 조회 Response 예제 ******************/
|
||||
/* "resultCode": 결과코드, "objectList": 채널 목록 */
|
||||
/* "msg": 결과 메시지, "profileId": 프로필ID, "senderKey": 발신프로필키 */
|
||||
/* "phoneNumber": 핸드폰번호, "yellowId": 채널ID, "categoryName": 카테고리명 */
|
||||
%>
|
||||
@ -20,27 +20,25 @@
|
||||
final String encodingType = "UTF-8";
|
||||
final String boundary = "____boundary____";
|
||||
|
||||
|
||||
//비즈 아이디, APIKEY - 보안을 위해 실제 서비스 시에는 이곳에 bizId와 apiKey 값을 적어서 사용
|
||||
//실제서비스용
|
||||
final String accessKey = "3429312e6a2c732188d4cc7d15d8a1baa01d8d91"; //발급받은 api key
|
||||
|
||||
//테스트용
|
||||
//String bizId = request.getParameter("p_bizId"); //비즈 아이디
|
||||
//String mberId = request.getParameter("p_mberId"); //문자온 로그인 아이디
|
||||
//String apiKey = request.getParameter("p_apiKey"); //발급받은 api key
|
||||
|
||||
/******************** 전송 요청 URL ********************/
|
||||
final String apiUrl = "http://119.193.215.98:8087/api/kakao/inqry/templates/list"; //템플릿 목록 조회 API URL
|
||||
// final String apiUrl = "http://localhost:8088/api/kakao/inqry/templates/list"; //템플릿 목록 조회 API URL
|
||||
|
||||
/******************** 전송 정보 ********************/
|
||||
//필수 값
|
||||
String p_senderKey = request.getParameter("p_senderKey"); //발신프로필키
|
||||
String p_mberId = request.getParameter("p_mberId"); //발신프로필키
|
||||
|
||||
//회원아이디, APIKEY - 보안을 위해 실제 서비스 시에는 이곳에 mberId와 apiKey 값을 적어서 사용
|
||||
String p_senderKey = request.getParameter("p_senderKey"); //발신자 번호
|
||||
String p_mberId = request.getParameter("p_mberId"); //수신자 번호
|
||||
|
||||
Map<String, String> params = new HashMap<String, String>();
|
||||
|
||||
System.out.println("accessKey : "+ accessKey);
|
||||
|
||||
//기본 전송 데이터
|
||||
params.put("mberId", p_mberId); //비즈 아이디
|
||||
params.put("accessKey", accessKey); //인증키
|
||||
@ -95,8 +93,8 @@
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
/**************** 템플릿 목록 조회 Response 예제 ******************/
|
||||
/* "resultCode": 결과코드, "objectList": 템플릿 목록 */
|
||||
/* "msg": 결과 메시지, "templateCode": 템플릿코드, "templateName": 템플릿명 */
|
||||
/* "templateMessageType": 메시지타입, "status": 상태, "inspectionStatus": 검수상태 */
|
||||
/**************** 채널ID 조회 Response 예제 ******************/
|
||||
/* "resultCode": 결과코드, "objectList": 채널 목록 */
|
||||
/* "msg": 결과 메시지, "profileId": 프로필ID, "senderKey": 발신프로필키 */
|
||||
/* "phoneNumber": 핸드폰번호, "yellowId": 채널ID, "categoryName": 카테고리명 */
|
||||
%>
|
||||
@ -1,32 +1,50 @@
|
||||
<%@page import="java.io.InputStreamReader"%>
|
||||
<%@page import="java.io.BufferedReader"%>
|
||||
<%@page import="org.apache.http.HttpResponse"%>
|
||||
<%@page import="org.apache.http.client.methods.HttpPost"%>
|
||||
<%@page import="org.apache.http.impl.client.HttpClients"%>
|
||||
<%@page import="org.apache.http.client.HttpClient"%>
|
||||
<%@page import="org.apache.http.HttpEntity"%>
|
||||
<%@page import="java.net.URLEncoder"%>
|
||||
<%@page import="org.apache.http.entity.ContentType"%>
|
||||
<%@page import="java.nio.charset.Charset"%>
|
||||
<%@page import="org.apache.http.entity.mime.HttpMultipartMode"%>
|
||||
<%@page import="org.apache.http.entity.mime.MultipartEntityBuilder"%>
|
||||
<%@ page import="org.apache.http.message.BasicNameValuePair" %>
|
||||
<%@page import="org.apache.http.entity.StringEntity"%>
|
||||
<%@page import="org.apache.http.entity.ContentType"%>
|
||||
<%@page import="java.net.URLEncoder"%>
|
||||
<%@ page import="java.util.*" %>
|
||||
<%@ page import="org.apache.http.impl.client.CloseableHttpClient" %>
|
||||
<%@ page import="java.nio.charset.StandardCharsets" %>
|
||||
<%@ page import="org.apache.http.client.entity.UrlEncodedFormEntity" %>
|
||||
<%@ page import="org.apache.http.client.methods.CloseableHttpResponse" %>
|
||||
<%@page import="org.apache.http.client.methods.HttpPost"%>
|
||||
<%@page import="org.apache.http.impl.client.CloseableHttpClient"%>
|
||||
<%@page import="org.apache.http.impl.client.HttpClients"%>
|
||||
<%@page import="org.apache.http.message.BasicNameValuePair"%>
|
||||
<%@page import="org.apache.http.NameValuePair"%>
|
||||
<%@page import="java.nio.charset.StandardCharsets"%>
|
||||
<%@page import="java.util.*"%>
|
||||
<%@ page language="java" contentType="application/json; charset=UTF-8" pageEncoding="UTF-8"%>
|
||||
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
|
||||
<%
|
||||
response.setCharacterEncoding("UTF-8");
|
||||
|
||||
try{
|
||||
// ===== 고정값(실서비스는 서버 보관) =====
|
||||
//기본 설정값
|
||||
final String encodingType = "UTF-8";
|
||||
final String boundary = "____boundary____";
|
||||
|
||||
// ===== 전송 URL =====
|
||||
// final String apiUrl = "http://119.193.215.98:8087/api/kakao/at/sendMsg";
|
||||
|
||||
//테스트용
|
||||
//String mberId = request.getParameter("p_mberId"); //문자온 로그인 아이디
|
||||
//String apiKey = request.getParameter("p_apiKey"); //발급받은 api key
|
||||
|
||||
/******************** 전송 요청 URL ********************/
|
||||
final String apiUrl = "http://119.193.215.98:8087/api/kakao/at/sendMsg";
|
||||
// final String apiUrl = "http://localhost:8088/api/kakao/at/sendMsg";
|
||||
|
||||
|
||||
//회원아이디, APIKEY - 보안을 위해 실제 서비스 시에는 이곳에 mberId와 apiKey 값을 적어서 사용
|
||||
String p_mberId = request.getParameter("mberId"); //사용자 ID
|
||||
String p_apiKey = request.getParameter("accessKey"); //API KEY
|
||||
|
||||
System.out.println("p_mberId : "+ p_mberId);
|
||||
System.out.println("p_apiKey : "+ p_apiKey);
|
||||
Map<String, String> params = new HashMap<String, String>();
|
||||
|
||||
//기본 전송 데이터
|
||||
params.put("mberId", p_mberId); //회원 아이디
|
||||
params.put("accessKey", p_apiKey); //인증키
|
||||
|
||||
|
||||
// ===== 공통 파라미터 수신 (p_* / 비접두어 둘 다 허용) =====
|
||||
String senderKey = request.getParameter("p_senderKey"); if (senderKey == null) senderKey = request.getParameter("senderKey");
|
||||
@ -35,20 +53,20 @@ try {
|
||||
String subMsgSendYn = request.getParameter("p_subMsgSendYn"); if (subMsgSendYn == null) subMsgSendYn = request.getParameter("subMsgSendYn");
|
||||
String testYn = request.getParameter("p_testYn"); if (testYn == null) testYn = request.getParameter("testYn");
|
||||
|
||||
System.out.println("senderKey : "+ senderKey);
|
||||
|
||||
if (callFrom != null) callFrom = callFrom.replaceAll("\\D", ""); // 숫자만
|
||||
|
||||
// ===== form 구성 (x-www-form-urlencoded) =====
|
||||
List<NameValuePair> form = new ArrayList<>();
|
||||
form.add(new BasicNameValuePair("mberId", p_mberId));
|
||||
form.add(new BasicNameValuePair("accessKey", p_apiKey));
|
||||
form.add(new BasicNameValuePair("senderKey", senderKey != null ? senderKey : ""));
|
||||
form.add(new BasicNameValuePair("templateCode", templateCode != null ? templateCode : ""));
|
||||
form.add(new BasicNameValuePair("callFrom", callFrom != null ? callFrom : ""));
|
||||
form.add(new BasicNameValuePair("subMsgSendYn", subMsgSendYn != null ? subMsgSendYn : ""));
|
||||
Map<String, String> form = new LinkedHashMap<String, String>();
|
||||
|
||||
form.put("mberId", p_mberId);
|
||||
form.put("accessKey", p_apiKey);
|
||||
form.put("senderKey", senderKey != null ? senderKey : "");
|
||||
form.put("templateCode", templateCode != null ? templateCode : "");
|
||||
form.put("callFrom", callFrom != null ? callFrom : "");
|
||||
form.put("subMsgSendYn", subMsgSendYn != null ? subMsgSendYn : "");
|
||||
|
||||
if (testYn != null && !testYn.isEmpty()) {
|
||||
form.add(new BasicNameValuePair("testYn", testYn)); // snake_case 아님
|
||||
form.put("testYn", testYn);
|
||||
}
|
||||
|
||||
// ===== 수신자 인덱스 수집 (callTo_* / p_callTo_* 모두 지원) =====
|
||||
@ -77,22 +95,43 @@ try {
|
||||
|
||||
String subTxt = request.getParameter("subMsgTxt_" + idx);
|
||||
if (subTxt == null) subTxt = request.getParameter("p_subMsgTxt_" + idx);
|
||||
form.put("callTo_" + idx, callTo);
|
||||
if (title != null && !title.isEmpty()) form.put("templateTitle_" + idx, title);
|
||||
if (content != null && !content.isEmpty()) form.put("templateContent_" + idx, content);
|
||||
if (subTxt != null && !subTxt.isEmpty()) form.put("subMsgTxt_" + idx, subTxt);
|
||||
|
||||
form.add(new BasicNameValuePair("callTo_" + idx, callTo));
|
||||
if (title != null && !title.isEmpty()) form.add(new BasicNameValuePair("templateTitle_" + idx, title));
|
||||
if (content != null && !content.isEmpty()) form.add(new BasicNameValuePair("templateContent_" + idx, content));
|
||||
if (subTxt != null && !subTxt.isEmpty()) form.add(new BasicNameValuePair("subMsgTxt_" + idx, subTxt));
|
||||
}
|
||||
|
||||
// (선택) 서버 로그로 확인
|
||||
System.out.println("form :: " + form);
|
||||
|
||||
|
||||
// ===== 전송 =====
|
||||
String result = "";
|
||||
try (CloseableHttpClient client = HttpClients.createDefault()) {
|
||||
|
||||
HttpPost post = new HttpPost(apiUrl);
|
||||
post.setHeader("Accept", "application/json");
|
||||
post.setEntity(new UrlEncodedFormEntity(form, StandardCharsets.UTF_8));
|
||||
|
||||
// form(Map)을 x-www-form-urlencoded 문자열로 변환
|
||||
StringBuilder body = new StringBuilder();
|
||||
for (Map.Entry<String, String> entry : form.entrySet()) {
|
||||
if (body.length() > 0) {
|
||||
body.append('&');
|
||||
}
|
||||
body.append(URLEncoder.encode(entry.getKey(), "UTF-8"))
|
||||
.append('=')
|
||||
.append(URLEncoder.encode(entry.getValue() != null ? entry.getValue() : "", "UTF-8"));
|
||||
}
|
||||
|
||||
// StringEntity로 설정
|
||||
StringEntity entity = new StringEntity(
|
||||
body.toString(),
|
||||
ContentType.APPLICATION_FORM_URLENCODED.withCharset(StandardCharsets.UTF_8)
|
||||
);
|
||||
post.setEntity(entity);
|
||||
|
||||
|
||||
|
||||
|
||||
try (CloseableHttpResponse res = client.execute(post)) {
|
||||
if (res != null && res.getEntity() != null) {
|
||||
try (BufferedReader in = new BufferedReader(
|
||||
@ -103,14 +142,19 @@ try {
|
||||
}
|
||||
}
|
||||
}
|
||||
System.out.println(" ++ result :: "+ result);
|
||||
|
||||
out.print((result == null || result.isEmpty())
|
||||
? "{\"data\":{\"resultCode\":99,\"msg\":\"EMPTY RESPONSE\"}}"
|
||||
: result);
|
||||
|
||||
|
||||
}catch(Exception e){
|
||||
out.print("{\"data\":{\"resultCode\":99,\"msg\":\"WRONG API METHOD\"}}");
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
/**************** 채널ID 조회 Response 예제 ******************/
|
||||
/* "resultCode": 결과코드, "objectList": 채널 목록 */
|
||||
/* "msg": 결과 메시지, "profileId": 프로필ID, "senderKey": 발신프로필키 */
|
||||
/* "phoneNumber": 핸드폰번호, "yellowId": 채널ID, "categoryName": 카테고리명 */
|
||||
%>
|
||||
Loading…
Reference in New Issue
Block a user