Coolsms (문자 전송)

yuzu sim's avatar
Jan 17, 2024
Coolsms (문자 전송)

1. Coolsms란?

자바로 문자 보낼 수 있는 서비스. 우선 Coolsms 사이트에 들어가서 API Key와 API Secret 코드를 발급 받는다. 이후 이 값을 라이브러리를 다운 받아서, 해당하는 메소드에 넣으면 문자가 간다. (Coolsms가 맞춰보고 신뢰할 수 있으면 통신사한테 내 문자를 전달해주는 것)
notion image
💡
보내는 사람 이름을 112로 넣으면 112만의 api키랑 secret값 (해쉬값)이 일치하지 않아서 팅궈버림.
 

2. Coolsms 이용하기

https://coolsms.co.kr/ > 우측 '개발 문서' Java/Kotlin SDK 연동 가이드 > 메시지 발송 예제
라이브러리로 문자를 보내기 위해서 SDK (소프트웨어 디벨롭 키)를 다운받아라.

2-1. 프로젝트 생성 및 라이브러리 추가하기

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

 
[ 라이브러리 추가하기 ]
notion image
implementation 'net.nurigo:sdk:4.2.7' 해당 코드를 build.gradle의 dependencies에 붙여넣는다.
notion image
notion image
코끼리 누르면 라이브러리 다운 완료!
notion image
다 다운 받아진 것 확인 (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()); }
 
notion image
notion image
빨간 부분 가서 alt + enter 하면 import 완료! (import 안되어서 빨간거)
 

 
통신은 무조건 예외가 있을 수 있다. runTime 에러나는걸 미리 잡으라고 알려줌 messageService.send(message);는 부모가 알려주는 Exception
notion image
NurigoMessageNotReceivedException 메세지를 못받았을때의 익셉션과 그 외의 exception
notion image
그런데... 한글이 깨져서 나온다?!
 

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

Coding_study