개발자의 끄적끄적

[php] Zoom Api Event Webhook URL Validation Code / 줌 이벤트 웹훅 url 인증 소스 코드 본문

개발/php

[php] Zoom Api Event Webhook URL Validation Code / 줌 이벤트 웹훅 url 인증 소스 코드

효벨 2025. 3. 14. 09:27
728x90
반응형

[php] Zoom Api Event Webhook URL Validation Code / 줌 이벤트 웹훅 url 인증 소스 코드

 

 

php 에서 zoom api 를 연동해서 개발을 하다보면

 

webhook 로 이벤트를 받아야 하는 경우가 있습니다!

 

zoom 에서는 이러한 이벤트를 등록할때 해당 url 이 정상인지 validation 체크를 해야합니다!

 

그 샘플코드를 전달드립니다!

 

validation 을 체크할 url 이 위치한 함수에 아래 코드를 그대로 복사해서 넣으시면 정상 인증됩니다!

 

단!!

 

[SECRET_TOKEN] 이라고 되어있는 부분은

 

zoom 개발을 위해 app 을 생성할때 나오는 secret token 을 입력하시면 됩니다!

 

        $input = file_get_contents('php://input');
        $data = json_decode($input);
        // Check if the event type is "endpoint.url_validation"
        if ($data && isset($data->event)) {
            if( $data->event === "endpoint.url_validation" ) {
                // Check if the payload contains the "plainToken" property
                if (isset($data->payload) && isset($data->payload->plainToken)) {
                    // Get the plainToken from the payload
                    $plainToken = $data->payload->plainToken;


                    // Hash the plainToken using HMAC-SHA256
                    $encryptedToken = hash_hmac("sha256", $plainToken, [SECRET_TOKEN]);

                    // Create the response JSON object
                    $response = [
                        "plainToken" => $plainToken,
                        "encryptedToken" => $encryptedToken
                    ];

                    // Set the response HTTP status code to 200 OK
                    http_response_code(200);

                    // Set the response content type to JSON
                    header("Content-Type: application/json");

                    // Output the response JSON
                    echo json_encode($response);
                } else {
                    // Payload is missing the "plainToken" property
                    http_response_code(400); // Bad Request
                    echo "Payload is missing 'plainToken' property.";
                }
            }
        }

 

 

참고들 하세요!

반응형