
1. Coolsms란?
자바로 문자 보낼 수 있는 서비스. 우선 Coolsms 사이트에 들어가서 API Key와 API Secret 코드를 발급 받는다. 이후 이 값을 라이브러리를 다운 받아서, 해당하는 메소드에 넣으면 문자가 간다. (Coolsms가 맞춰보고 신뢰할 수 있으면 통신사한테 내 문자를 전달해주는 것)

보내는 사람 이름을 112로 넣으면
112만의 api키랑 secret값 (해쉬값)이 일치하지 않아서 팅궈버림.
2. Coolsms 이용하기
https://coolsms.co.kr/ > 우측 '개발 문서'
Java/Kotlin SDK 연동 가이드 > 메시지 발송 예제
라이브러리로 문자를 보내기 위해서 SDK (소프트웨어 디벨롭 키)를 다운받아라.
2-1. 프로젝트 생성 및 라이브러리 추가하기
[ 프로젝트 생성 ]

build : 실행 파일을 만든다
DSL : 도메인 특화 언어 (목적이 있는 언어, 목적이 딱 하나 있는 언어)
(SQL 같이 쿼리에 질의를 하기 위한 단 하나의 목적을 가진 걸 DSL이라고 한다.)
(JAVA는 DSL가 아니다.)
프로젝트 만들 때, 이렇게 안 만들면 build.gradle 안 만들어짐!
[ 라이브러리 추가하기 ]

implementation 'net.nurigo:sdk:4.2.7'
해당 코드를 build.gradle의 dependencies에 붙여넣는다.


코끼리 누르면 라이브러리 다운 완료!

다 다운 받아진 것 확인 (21은 기존의 자바 라이브러리)
2-2. 단축 문자 발송 코드 복붙
코드
DefaultMessageService messageService = NurigoApp.INSTANCE.initialize("API 키 입력", "API 시크릿 키 입력", "https://api.coolsms.co.kr");
// Message 패키지가 중복될 경우 net.nurigo.sdk.message.model.Message로 치환하여 주세요
Message message = new Message();
message.setFrom("계정에서 등록한 발신번호 입력");
message.setTo("수신번호 입력");
message.setText("SMS는 한글 45자, 영자 90자까지 입력할 수 있습니다.");
try {
// send 메소드로 ArrayList<Message> 객체를 넣어도 동작합니다!
messageService.send(message);
} catch (NurigoMessageNotReceivedException exception) {
// 발송에 실패한 메시지 목록을 확인할 수 있습니다!
System.out.println(exception.getFailedMessageList());
System.out.println(exception.getMessage());
} catch (Exception exception) {
System.out.println(exception.getMessage());
}


빨간 부분 가서 alt + enter 하면 import 완료! (import 안되어서 빨간거)
통신은 무조건 예외가 있을 수 있다. runTime 에러나는걸 미리 잡으라고 알려줌 messageService.send(message);는 부모가 알려주는 Exception

NurigoMessageNotReceivedException 메세지를 못받았을때의 익셉션과 그 외의 exception

그런데... 한글이 깨져서 나온다?!
2-3. 한글 깨짐 해결 방법

한글 안 깨지는 것 확인!
2-4. 완성 코드
import net.nurigo.sdk.NurigoApp;
import net.nurigo.sdk.message.exception.NurigoMessageNotReceivedException;
import net.nurigo.sdk.message.model.Message;
import net.nurigo.sdk.message.service.DefaultMessageService;
public class MyApp {
public static void main(String[] args) {
DefaultMessageService messageService = NurigoApp.INSTANCE.initialize("N", "J", "https://api.coolsms.co.kr");
// Message 패키지가 중복될 경우 net.nurigo.sdk.message.model.Message로 치환하여 주세요
Message message = new Message();
message.setFrom("112");
message.setTo("010");
message.setText("안녕, 이제 곧 집에가");
try {
// send 메소드로 ArrayList<Message> 객체를 넣어도 동작합니다!
messageService.send(message);
} catch (NurigoMessageNotReceivedException exception) {
System.out.println("오류 발생1");
// 발송에 실패한 메시지 목록을 확인할 수 있습니다!
System.out.println(exception.getFailedMessageList());
System.out.println(exception.getMessage());
} catch (Exception exception) {
System.out.println("오류 발생2");
System.out.println(exception.getMessage());
}
}
}
오류발생1 . 발신번호 미등록. 112를 폰번호로 바꿔라
이런 식으로 API 키 값도 바꿔보고 하면서... 봐바라!
Share article