각진 세상에 둥근 춤을 추자

[API] JAVA 단일 문자 전송 API(SMS API) 본문

프로젝트/API

[API] JAVA 단일 문자 전송 API(SMS API)

circle.j 2024. 9. 12. 14:22

NAVER SMS API 사용이 개인 회원은 불가능하다고 해 타 사이트 API를 사용하기로 했다. 

https://coolsms.co.kr/

 

세상에서 가장 안정적이고 빠른 메시지 발송 플랫폼 - 쿨에스엠에스

손쉬운 결제 전용계좌, 신용카드, 계좌이체 등 국내 결제 뿐만 아니라 해용신용카드로 한번의 카드번호 등록으로 자동충전까지 지원합니다. 전용계좌, 신용카드, 계좌이체 등 다양한 결제 방식

coolsms.co.kr

 

 

회원 가입 후 본인인증을 하면 환경설정 > 발신번호 관리에 나의 번호가 등록된다. 

 

 

개발/연동 > API Key 관리에서 새로운 API KEY를 생성한다.

 

 

build.gradle에 CoolSMS API의 의존성을 추가한다.

implementation 'net.nurigo:sdk:4.3.0'

 

 

단일 문자 전송 구현 예제는 깃허브에서 볼 수 있다. 

https://github.com/coolsms/coolsms-java-examples/blob/main/gradle-spring-demo/src/main/java/net/nurigo/gradlespringdemo/ExampleController.java

 

coolsms-java-examples/gradle-spring-demo/src/main/java/net/nurigo/gradlespringdemo/ExampleController.java at main · coolsms/coo

CoolSMS Java/Kotlin SDK 예제 목록. Contribute to coolsms/coolsms-java-examples development by creating an account on GitHub.

github.com

 

 

 

java

package kr.co.test.controller;

import lombok.extern.slf4j.Slf4j;
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;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;

@Slf4j
@Controller
public class testController {

    private static final int SALT_LENGTH = 32;
    private static SecureRandom secureRandom;

    static {
        try {
            secureRandom = SecureRandom.getInstanceStrong();
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException("SecureRandom Instance not created...", e);
        }
    }

    final DefaultMessageService messageService;

    public testController() {
        // 반드시 계정 내 등록된 유효한 API 키, API Secret Key를 입력
        this.messageService = NurigoApp.INSTANCE.initialize("INSERT_API_KEY", "INSERT_API_SECRET_KEY", "https://api.coolsms.co.kr");
    }

	// 인증번호로 보낼 번호 (난수 생성)
    public String createNumberKey() {
        log.warn("createNumberKey...");

        secureRandom = new SecureRandom();

        int randomNumber = 100000 + secureRandom.nextInt(900000);
        log.warn("randomNumber : " + randomNumber);

        return String.valueOf(randomNumber);
    }

    // 단일 메시지 발송
    public SingleMessageSentResponse sendOne(){

        String numberKey = createNumberKey();

        Message message = new Message();
        message.setFrom("01012345678"); // 발신번호 입력
        message.setTo("01012345678");   // 수신번호 입력
        message.setText("[SMS] 인증번호: " + numberKey + "를 입력하세요.");

        log.warn("Sending message: " + message.getText());

        SingleMessageSentResponse response = this.messageService.sendOne(new SingleMessageSendingRequest(message));
        log.warn("response: " + response);

        return response;
    }



}

 

 

 

 

문자 전송 한 건당 20P씩 차감인데, 처음에는 무료 포인트 300이 지급된다.