IT 개발자가 되기위한 여정

컴퓨터 공부를 시작함에 앞서 계획 및 개발에 대한 내용을 풀어나갈 생각입니다.

프로젝트/오키드 마켓 (장기 , 1인)

Naver Cloud Platform [3] - SMS 송신하기

제로시엘 2022. 8. 17. 00:02

SMS의 경우 메일보단 조금 더 많은 요청사항이 있다.

 

https://www.ncloud.com/product/applicationService/sens

 

NAVER CLOUD PLATFORM

cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification

www.ncloud.com

먼저 달에 50건까지 무료이며 이용 신청하기를 통해 신청을 해준다.

이 중 ID만 사용한다 ( ncp:sms:kr:숫자:프로젝트명)

또한 자신의 휴대폰 혹은 법인 번호를 등록해야 한다.

 

https://console.ncloud.com/sens/sms-calling-number

import MakeSignature from "@components/makeSignature";
const axios = require("axios");

export default function sendmessage(phone, payload) {
  let resultCode = 404;
  const date = Date.now().toString();
  const smsId = process.env.NAVER_ID;
  const accessKey = process.env.NAVER_ACCESS_KEY;
  const method = "POST";
  const url = `https://sens.apigw.ntruss.com/sms/v2/services/${smsId}/messages`;
  const signature = MakeSignature(`/sms/v2/services/${smsId}/messages`, method);

  axios({
    method: method,
    url: url,
    headers: {
      "Contenc-type": "application/json; charset=utf-8",
      "x-ncp-iam-access-key": accessKey,
      "x-ncp-apigw-timestamp": date,
      "x-ncp-apigw-signature-v2": signature,
    },
    data: {
      type: "SMS",
      countryCode: "82",
      from: `${process.env.MYPHONE}`,
      content: `로그인 인증 키는 ${payload} 입니다.`,
      messages: [{ to: `${phone}` }],
    },
  })
    .then((res) => {
      console.log(res.data);
    })
    .catch((err) => {
      console.log(err);
    });

  return resultCode;
}

 

입력받은 고객의 전화번호를 phone , 생성한 고유 토큰을 payload로 받아와서 고객에게 보내주는 방식이다.

 

사용중인 환경상수

NAVER_ID="ncp:sms:kr:숫자:프로젝트명"
NAVER_ACCESS_KEY="ABABABABAB232323"
NAVER_ACCESS_SECRIT_KEY="ABABABABABABABBABABB23323"
MYMAIL="클라우드 네이버 메일"
MYPHONE="휴대폰 전화번호"