안녕하세요 이번 시간에는 문자를 발송하는 것에 대해 알아볼게요
우선 ncloud라는 네이버 플랫폼을 사용해야 하는데 들어가셔서 절차에 따라 로그인과 카드 정보를 입력 해주셔야합니다.
https://www.toast.com/kr/service
위 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/mainlogin.html
'PHP' 카테고리의 다른 글
[PHP] Curl 을 이용해 웹페이지 소스 사용하기 (0) | 2021.12.28 |
---|---|
[PHP] 로그인시 유효성 검사 하기 (0) | 2021.10.08 |
[PHP] 클라이언트에 DB 데이터를 json 객체로 응답 보내기 (0) | 2021.08.09 |
[PHP] JWT 구현하기 (2) | 2021.07.24 |
[PHP] 웹 프로필 이미지 업로드 (0) | 2021.05.17 |