Я начинаю работать с PHP-библиотекой Wowza, и у меня возникают проблемы с подключением к потоковому движку, который я установил локально. По указанию https://github.com/WowzaMediaSystems/wse-rest-library-php, Я установил composer, создал файл конфигурации с моим сервером и настройками аутентификации
wowza_config.php
define("WOWZA_HOST","http://localhost:8087/v2");
define("WOWZA_SERVER_INSTANCE", "_defaultServer_");
define("WOWZA_VHOST_INSTANCE", "_defaultVHost_");
define("WOWZA_USERNAME", "admin");
define("WOWZA_PASSWORD", "admin");
Затем при попытке тестов для получения данных с сервера, например:
index.php
<?php
require_once ('vendor/autoload.php');
require_once("config/wowza_config.php");
// It is simple to create a setup object for transporting our settings
$setup = new Com\Wowza\Entities\Application\Helpers\Settings();
$setup->setHost(WOWZA_HOST);
$setup->setUsername(WOWZA_USERNAME);
$setup->setPassword(WOWZA_PASSWORD);
$sf = new Com\Wowza\Statistics($setup);
// get stats per application
$wowzaApplication = new Com\Wowza\Application($setup, 'vod');
// get total server stats
$server = new Com\Wowza\Server($setup, 'http://localhost:8087/v2');
$response = $sf->getServerStatistics($server);
// get stats historical for given application
// $response = $sf->getApplicationStatisticsHistory($wowzaApplication);
// $response = $sf->getApplicationStatistics($wowzaApplication);
// get incoming stream stats for given application
var_dump($response);
?>
Я получаю ошибку
object(stdClass)#8 (4) { ["message"]=> string(40) "The request requires user authentication" ["code"]=> string(3) "401" ["wowzaServer"]=> string(5) "4.7.7" ["success"]=> bool(false) }
Я проверил трижды, чтобы подтвердить, что учетные данные, которые я использую, совпадают с учетными данными серверов, но я не могу понять, что я делаю неправильно
Я заметил одну вещь: в ваших настройках вы не устанавливаете значение «useDigest». Таким образом, по умолчанию используется значение false (см. https://github.com/WowzaMediaSystems/wse-rest-library-php/blob/master/src/Entities/Application/Helpers/Settings.php). Затем, когда вы вызываете getServerStatistics (), в конце концов он вызывает «sendRequest ()» в классе Wowza (см. https://github.com/WowzaMediaSystems/wse-rest-library-php/blob/master/src/Wowza.php). И в этом классе он добавляет имя пользователя и пароль к запросу, только если для параметра «useDigest» установлено значение true в настройках:
if ($this->settings->isUseDigest()) {
curl_setopt($ch, CURLOPT_USERPWD, $this->settings->getUsername() . ':' . $this->settings->getPassword());
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
}
Поэтому я думаю, что это вообще не привязывает имя пользователя и пароль к вашему запросу.
Поэтому я предлагаю вам добавить
$setup->setUseDigest(true);
к вашему коду при настройке объекта настроек, и это должно помочь.
Других решений пока нет …