TIL
카카오 알림톡 발송하기 - PHP 버전
개발따라김양
2024. 2. 28. 09:06
1. 카카오 알림톡은 보내는 이와 카카오톡 친구가 아니여도 휴대폰 번호만 알아도 발송이 가능합니다.
2. 사전에 비지니스 계정으로 등록이 필요합니다.
<?php
$base_url = "stg-user.bizmsg.kakaoenterprise.com"; //스테이징 - 일반 / 변경 필요
$clientID = ""; //변경 필요
$clientSecret = ""; //변경 필요
$curl = curl_init();
//1단계 OAuth 2.0 인증 -> 토큰 발급
curl_setopt_array($curl, array(
CURLOPT_URL => "https://$base_url/v2/oauth/token",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => false,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "grant_type=client_credentials",
CURLOPT_HTTPHEADER => array(
"Content-Type: application/x-www-form-urlencoded",
"Authorization: Basic " . base64_encode("$clientID $clientSecret")
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else if ($users) {
echo $response;
$responseData = json_decode($response, true);
$accessToken = $responseData['access_token'];
$senderKey = ""; //변경 필요
foreach ($users as $item) {
//2단계 카카오톡 메시지 발송
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://$base_url/v2/send/kakao",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => false,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode(array(
"message_type" => "AT",
"sender_key" => $senderKey,
"cid" => "1234",
"template_code" => "TEMPLATE_001",
"phone_number" => 82 . $item['phone'],
"sender_no" => "0100000000",
"message" => "알림톡 메시지 테스트",
"fall_back_yn" => false
)),
CURLOPT_HTTPHEADER => array(
"Content-Type: application/json",
"Authorization: Bearer $access_token"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
$responseData = json_decode($response, true);
$code = $responseData['code']; //200 성공
}
}
}
?>