sms API
API 문서
Request 방법
SyntaxSample
curl -X GET https://api.coolsms.co.kr/messages/v4/list --header "Authorization: HMAC-SHA256 apiKey=NCSAYU7YDBXYORXC, date=2019-07-01T00:41:48Z, salt=jqsba2jxjnrjor, signature=1779eac71a24cbeeadfa7263cb84b7ea0af1714f5c0270aa30ffd34600e363b4"
- curl → cmd 로 http 요청 보내는 명령어
- GET → 요청 방식
- https://api.coolsms.co.kr/messages/v4/list → 풀 주소는 엔드포인트라 한다
- https://api.coolsms.co.kr → 호스트 주소
- --header → head 값 작성 코드
java 에 SDK 설치




SDK 예제
API란
host : http://192.168.0.99:8080
endpoint : /messages/v4/send
content-type : json
method : post
api key는 header에 추가
{"Authorization": "시크릿키" }
요청 body
{
"message": {
"to": "01055558888",
"from": "01022223333",
"text": "문자메시지 내용이야 ㅋㅋ"
}
}
응답 body
{
"groupId": "1",
"to": "01055558888",
"from": "01022223333",
"type": "sms",
"statusMessage": "OK",
"country": "Korea",
"messageId": "10050",
"statusCode": "200",
"accountId": "82"
}
SDK란
sendSms() 라는 함수를 제공해주는 것이다.
연습
단일 메시지

postman 으로 보내는 연습



javascript 로 API 를 사용하는 연습
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<input type="text" id="from" placeholder="발신자전화번호">
<input type="text" id="to" placeholder="수신자전화번호">
<input type="text" id="text" placeholder="문자내용">
<button onclick="sendSms()">문자전송</button>
<script>
async function sendSms(from, to, text){
let requestBody = {
message : {
from : document.querySelector("#from").value,
to : document.querySelector("#to").value,
text : document.querySelector("#text").value
}
};
let response = await fetch("http://192.168.0.99:8080/messages/v4/send", {
method: "post",
body : JSON.stringify(requestBody),
headers: {
"Content-Type":"application/json",
"Authorization":"12345"
}
});
let responseBody = await response.json();
console.log(responseBody);
}
</script>
</body>
</html>
SMS 서버
package shop.mtcoding.blog.board;
import lombok.Data;
@Data
public class SmsRequestDto {
private Message message;
@Data
public static class Message {
private String to;
private String from;
private String text;
}
}
package shop.mtcoding.blog.board;
import lombok.AllArgsConstructor;
import lombok.Data;
@AllArgsConstructor
@Data
public class SmsResponseDto {
private String groupId;
private String to;
private String from;
private String type;
private String statusMessage;
private String country;
private String messageId;
private String statusCode;
private String accountId;
}
@PostMapping("/messages/v4/send")
public @ResponseBody SmsResponseDto send(@RequestBody SmsRequestDto reqDTO, HttpServletRequest request) {
String apiKey = request.getHeader("Authorization");
if (!apiKey.equals("12345")) throw new ExceptionApi403("API가 잘못되었어요");
// 메시지 전송 Service 요청
return new SmsResponseDto("1", reqDTO.getMessage().getTo(), reqDTO.getMessage().getFrom(), "sms", "OK", "Korea", "10050", "200", "82");
}
java 로 실행
API 를 사용한 방법
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
public class Request {
public static void main(String[] args) throws Exception {
String targetUrl = "http://192.168.0.99:8080/messages/v4/send";
String body = """
{
"message": {
"to": "01055558888",
"from": "01022223333",
"text": "문자메시지 내용이야 ㅋㅋ"
}
}
""";
URL url = new URL(targetUrl);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("POST");
con.setRequestProperty("Authorization", "12345");
con.setRequestProperty("Content-Type", "application/json");
con.setDoOutput(true);
BufferedWriter br = new BufferedWriter(new OutputStreamWriter(con.getOutputStream()));
br.write(body + "\n");
br.flush();
br.close();
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String line;
StringBuffer response = new StringBuffer();
while ((line = in.readLine()) != null) {
response.append(line);
}
in.close();
System.out.println("HTTP response code : " + responseCode);
System.out.println("HTTP body : " + response.toString());
}
}
SDK 를 사용한 방법
import net.nurigo.sdk.NurigoApp;
import net.nurigo.sdk.message.model.Message;
import net.nurigo.sdk.message.request.SingleMessageSendingRequest;
import net.nurigo.sdk.message.response.SingleMessageSentResponse;
import net.nurigo.sdk.message.service.DefaultMessageService;
public class MyApp {
public static void main(String[] args) {
DefaultMessageService messageService = NurigoApp.INSTANCE.initialize("NCSWVPR5Y8VASQWU", "LY66AWPMYSQLIOPK3MCKBUQFNXANPEGX", "https://api.coolsms.co.kr");
Message message = new Message();
// 발신번호 및 수신번호는 반드시 01012345678 형태로 입력되어야 합니다.
message.setFrom("01090949506");
message.setTo("01090949506");
message.setText("안녕하세요. 최재원입니다");
SingleMessageSendingRequest body = new SingleMessageSendingRequest(message);
SingleMessageSentResponse responseBody = messageService.sendOne(body);
System.out.println(responseBody);
}
}
Share article