네이버클라우드 SENS를 이용하여 SMS 발송서비스 만들기 #2


안녕하세요? 남산돈가스입니다.

지난 포스팅에서 네이버클라우드 SMS 발송 서비스인 SENS에 대해서 간략하게 소개하고,
실제 프로젝트를 생성하고, 콘솔 상에서 SMS 발송이 되는 것까지 확인해보았습니다.

이번 시간에는, SENS에서 제공하는 OPEN API를 활용하여 SMS를 발송해보는 법을 포스팅해보겠습니다.

일단, SENS OPEN API 사용설명서 를 확인해보면, API 사용을 위한 기본 정보가 자세히 설명되어있습니다.

OPEN API 호출을 위한 기본적인 내용을 살펴보면 아래와 같습니다.
* Header
  • X-NCP-auth-key : 네이버 클라우드 플랫폼 회원에게 발급되는 개인 인증키
  • X-NCP-service-secret : 2차 인증을 위해 서비스마다 할당되는 service secret
* Parameter
  • serviceId - 프로젝트에 할당된 SMS 서비스 ID
  • Body - SMS 발신 정보 요청

위에서 나열한 API 요청 정보를 하나씩 확인해보면, 먼저 Host는 네이버클라우드 API를 요청하기 위한 기본 URL입니다. 그리고 해당 API는 POST 매서드를 이용해 요청을 보낼 것이고, SENS SMS 발송 API를 위한 Path는 /v1/sms/services/{serviceId}/messages입니다. Path 내에 {serviceId} 부분은 지난 포스팅에서 생성했던 프로젝트의 serviceId를 삽입시켜주면 됩니다. 이 부분은 뒤에 다시 설명드리겠습니다.

여기까지 세가지 정보를 간단히 요약해보면,
POST - https://api-sens.ncloud.com/v1/sms/services/서비스ID/messages 로 어떤 임의의 요청을 보내면 SMS가 발송되는구나라고 이해하실 수 있습니다. 

이어서, 해당 API를 호출하기 위해서 헤더를 설정해주는 부분이 있습니다. 바로, X-NCP-auth-key와 X-NCP-service-secret인데요. 이 부분 역시 뒤에서 자세히 설명드리겠습니다.

먼저 X-NCP-auth-key는 네이버클라우드플랫폼 회원에게 발급되는 인증키입니다. 인증키 발급내역을 확인하시려면, 네이버클라우드 홈페이지에 접속하여 로그인하신 뒤 마이페이지 > 계정관리를 선택하시고 현재 비밀번호를 입력하고 확인을 누르면 개인 정보 화면이 노출됩니다.


개인정보 화면에서 상단의 인증키 관리를 누르면 API 인증키 관리의 Access Key ID가 보이는 것을 확인하실 수 있습니다.
이 Access Key ID가 API에서 필요로하는 헤더인 X-NCP-auth-key가 되는 것입니다.


그 다음으로, 두번째 헤더인 X-NCP-service-secret를 확인하기 위해서, SENS 서비스로 이동하여, 지난 포스팅에서 생성한 프로젝트를 확인해보면 우측에 열쇠 모양 아이콘을 확인할 수 있습니다.



열쇠 아이콘을 클릭하면, 서비스 ID 확인 팝업이 노출됩니다. 해당 팝업에서 Secret Key 보기 버튼을 클릭하면 key가 보여지는데, 그 key값이 두번째 헤더정보인 X-NCP-service-secret가 됩니다.

이어서 왼쪽의 ID탭에 보이는 것이 path안에서 {serviceId}에 해당합니다.

여기까지 두가지 헤더정보와 serviceId 까지 확인하셨으면, API를 호출하기 위한 기본정보를 모두 갖추었습니다. 이제 마지막으로, 실제 SMS 발송을 누구에게 보낼 것이고, 어떤 메시지를 보낼 것인지만 설정하면 모든 것이 마무리됩니다.


API를 호출하기 위해서 POSTMAN이라는 어플리케이션을 활용하여 SMS API를 호출해보려고 합니다. 

상단의 POST 매서드를 설정한 뒤, URL에 host + path를 입력하고 헤더 정보로 X-NCP-auth-key와 X-NCP-service-secret을 입력합니다. 그리고 헤더 탭 바로 오른쪽에 Body탭에서 발송양식을 json형태에 맞게 입력합니다.

* Body
{
     "type": "sms" 또는 "lms" ,
     "from": 등록되어있는 발신번호,
     "to": 최대 50개의 휴대폰번호 형식 배열,
     "content": type이 sms인 경우, 80바이트 이내의 string, lms인 경우, 2000바이트 내의 string
}

위의 설정을 모두 마친 뒤, Send 버튼을 클릭하여, 요청을 보내면 아래와 같이 보낸 메시지에 대한 결과값을 반환해주고, 실제 메시지도 발송된 것을 확인할 수 있습니다.




여기까지, OPEN API를 활용하여 SMS발송 서비스를 이용해보았습니다. 이제 해당 API를 알맞게 활용하여 SMS 발송서비스를 구현할 수 있게 되셨습니다. 감사합니다.


댓글

  1. 이전 포스팅 내용보다 조금 복잡한 것 같은데.. 이것 역시 한번 따라해 보겠습니다. 많은 도움이 될 듯 합니다. 고맙습니다.

    답글삭제
  2. 프로젝트에 적용하려면 어떤식으로 적용을 해야할까요?

    답글삭제

댓글 쓰기

주간 인기글

[정보] 인스타그램은 당신의 소리를 '듣고' 있을 수도 있습니다

[Angular] 모델, 값이 바뀌었는데 화면 template 이 업데이트 되지 않을 때 조치 팁

[AWS] Lambda + API GateWay를 이용해 간단한 RESTful API 만들기 #1

[AWS] Lambda + API GateWay를 이용해 간단한 RESTful API 만들기 #2

안드로이드에서 당겨서 새로고침(SwipeRefreshLayout) 쉽게 구현하기