728x90

비즈뿌리오 서비스를 통해 PHP 알림톡 서비스를 연동하여 관련 기록을 남김.

연동전 비즈뿌리오 가입 및 카카오 비즈니스 채널 가입 후 연동, 발신번호 등록, 템플릿 등록 후 승인까지 진행을 해야 실제 api 연동에 필요한 관련 키 및 컨텐츠 들을 확인하여 작업을 진행할 수 있음.

 

[준비물]

1. 비즈뿌리오 계정 (아이디:비밀번호)

2. 발신프로필키

3. 발신번호

4. 발송 템플릿 코드

 

[작업 순서]

1. 인증 토큰 생성

2. 인증 토큰 기반 알림톡 발송

 

보통 알림톡 api의 경우 템플릿 코드를 통해 연동된 템플릿의 사양을 api로 받아 활용이 가능하지만 비즈뿌리오의 경우 템플릿 조회 기능을 따로 api로 제공해주지 않기 때문에, 메시지나 관련 버튼을 코드상에 설정하여 발송 해야함.

연동

api 통신을 위한 curl 설정

/**
 * curl 통신
 * @return bool|string|null
 */
function curl($url, $fields = array(), $headers = array())
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, FALSE);
    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);

    $response = curl_exec($ch);
    curl_close($ch);

    return $response;
}

kakao token 생성

/**
 * 카카오 알림톡 토큰 생성
 * @return mixed
 */
function getKakaoJWTToken()
{
    $url = "https://api.bizppurio.com/v1/token";
    $header = array(
        "Content-Type: application/json",
        'Authorization: Basic ' . base64_encode('{비즈뿌리오계정:비즈뿌리오비밀번호}'),
    );
    $response = curl($url, json_encode(array('grant_type' => 'client_credentials')), $header);

    $arr = json_decode($response, true);
    return $arr['accesstoken'];
}

유효시간 1시간.

알림톡 발송

/**
 * 카카오 알림톡 발송
 * @param $templateCode
 * @param $phoneNumber
 * @param $content
 * @return void
 */
function kakaoSend($templateCode, $phoneNumber, $content)
{
    $token = getKakaoJWTToken();
    $url = "https://api.bizppurio.com/v3/message";
    $header = array(
        "Content-Type: application/json",
        'Authorization: Bearer ' . $token,
    );
    
    $buttons = array(
        array(
            "name" => "{버튼이름}",
            "type" => "{버튼타입코드_공식가이드 참조}",
            "url_mobile" => "{모바일 주소}",
            "url_pc" => "{pc 주소}"
        )
    );

    $template = array(
        "account" => "{비즈뿌리오 계정}",
        "type" => "{템플릿타입코드_공식가이드 참조}",
        "from" => "{발신번호}",
        "to" => $phoneNumber,
        "content" => array(
            "{템플릿타입코드_공식가이드 참조}" => array(
                "message" => $content,
                "senderkey" => "{발신프로필키}",
                "templatecode" => $templateCode,
                "button" => $buttons
            )
        ),
        "refkey" => $phoneNumber . '_' . time(),
        "resend" => array(
            "first" => "{발송실패시대체발송코드_공식가이드 참조}"
        ),
        "recontent" => array(
            "{발송실패시대체발송코드_공식가이드 참조}" => array(
                "message" => $content
            )
        )
    );

    $response = curl($url, json_encode($template), $header);
    
	return $response;
}

 

728x90

'PHP' 카테고리의 다른 글

엘지 메시지 허브 알림톡 API 연동 PHP  (0) 2022.11.08

+ Recent posts