Как создать «Заявку на подпись приложения» с помощью Sinch с использованием PHP - PullRequest
0 голосов
/ 03 июня 2019

Я пытаюсь использовать API Sinch Rest с PHP для отключения и включения определенных участников из конференц-связи, но не смог найти пример того, как отправить подписанный запрос приложения с помощью PHP.Я пытался отработать эту документацию от Sinch здесь https://www.sinch.com/docs/voice/rest/index.html#muteunmuteconfparticipant

Мои первоначальные предположения состоят в том, что это потребует использования CURL, и что мне также потребуется использовать аналогичные фрагменты этого примера, чтобы подписать мойприложения, но я не уверен, как объединить два. https://github.com/sinch/php-auth-ticket

Любая помощь приветствуется. Спасибо!

edit: @cjensen Я добавил этот фрагмент кода, над которым я работалпопробуйте использовать в качестве создателя подписанного запроса. Это очень похоже на ссылку github выше

<?php

    class SinchTicketGenerator
    {
        private $applicationKey; 
        private $applicationSecret;
        public function __construct($applicationKey, $applicationSecret)
        {
            $this->applicationKey = $applicationKey;
            $this->applicationSecret = $applicationSecret;
        }
        public function generateTicket()
        {
            $request = [
                'command' => 'mute',
            ];
            $requestJson = preg_replace('/\s+/', '', json_encode($request));
            $requestBase64 = $this->base64Encode($requestJson);
            $digest = $this->createDigest($requestJson);
            $signature = $this->base64Encode($digest);
            $requestSigned = $requestBase64.':'.$signature;
            return $requestSigned;
        }
        private function base64Encode($data)
        {
            return trim(base64_encode($data));
        }
        private function createDigest($data)
        {
            return trim(hash_hmac('sha256', $data, base64_decode($this->applicationSecret), true));
        }
    }

    $generator = new SinchTicketGenerator('app-key', 'app-secret');
    $signedrequest = $generator->generateTicket();
    echo $signedrequest;

?>
...