본문 바로가기
PHP

[PHP] ncloudSens API 사용하여 문자 발송 하기

by teamnova 2021. 9. 12.

안녕하세요 이번 시간에는 문자를 발송하는 것에 대해 알아볼게요

 

우선 ncloud라는 네이버 플랫폼을 사용해야 하는데 들어가셔서 절차에 따라 로그인과 카드 정보를 입력 해주셔야합니다.

 

https://www.toast.com/kr/service

 

NHN Cloud

NHN에서 제공하는 토스트 클라우드 서비스. 오픈스택 기반의 클라우드 인프라, 게임솔루션, 보안, 문자/이메일/알림톡, 협업도구 Dooray, ERP 제공

www.toast.com

위 url 주소로 들어가셔서 진행하시면 됩니다.

 

이제 진행 되었다는 가정하에 소스코드로 들어갈게요

 

 

 

 

 

//전송할 핸드폰 번호를 여기에 넣는다
$phoneNum = "010-1234-4597";

// sms 보내기 추가


$sID = "ncp:sms:kr:xxxxxxxxxxxx:project_name"; // 서비스 ID

$smsURL = "https://sens.apigw.ntruss.com/sms/v2/services/".$sID."/messages";
$smsUri = "/sms/v2/services/".$sID."/messages";
$sKey = "{서비스 ID Secret Key}";

$accKeyId = "{인증키 key id}";   //인증키 id
$accSecKey = "{인증키 secret key}";  //secret key

$sTime = floor(microtime(true) * 1000);

$authNum = rand(100000, 999999);// 랜덤 인증 번호 생성

// The data to send to the API
$postData = array(
    'type' => 'SMS',
    'countryCode' => '82',
    'from' => '01012345678', // 발신번호 (등록되어있어야함)
    'contentType' => 'COMM',
    'content' => "메세지 내용",
    'messages' => array(array('content' => "문자입니다. 인증번호: ".$authNum, 'to' => $phoneNum))
);

$postFields = json_encode($postData) ;

$hashString = "POST {$smsUri}\n{$sTime}\n{$accKeyId}";


$dHash = base64_encode( hash_hmac('sha256', $hashString, $accSecKey, true) );

$header = array(
    // "accept: application/json",
    'Content-Type: application/json; charset=utf-8',
    'x-ncp-apigw-timestamp: '.$sTime,
    "x-ncp-iam-access-key: ".$accKeyId,
    "x-ncp-apigw-signature-v2: ".$dHash
);

//curl은 다양한 프로토콜로 전송이 가능한 command line tool 이다
// Setup cURL
$ch = curl_init($smsURL);

curl_setopt_array($ch, array(   //옵션을 배열로 한번에 설정한다
    CURLOPT_POST => TRUE,
    CURLOPT_RETURNTRANSFER => TRUE,
    CURLOPT_HTTPHEADER => $header,
    CURLOPT_POSTFIELDS => $postFields
));

$response = curl_exec($ch);//설정된 옵션으로 실행한다

curl_close($ch);//chrl을 닫아준다

echo json_encode($authNum); //인증번호를 안드로이드로 보내준다

 

 

위의 소스코드를 통하면 문자가 잘 발송이 됩니다.

 

 

 

해당 소스는 스틱코드에 포스팅 해놓겠습니다.

https://stickode.com/profile.html?no=1356&tab=post 

 

https://stickode.com/profile.html?no=1356&tab=post

 

stickode.com

위 링크를 들어가 저를 구독하면 자동완성으로 사용 할 수 있습니다.

 

 

저 말고도 다른 좋은 소스코드들이 많으니 한번 들어가서 다른 소스들도 사랑해주세요

해당 스틱코드 홈페이지 링크도 첨부 해놓겠습니다.

 

https://stickode.com/mainlogin.html

 

STICKODE

 

stickode.com