Я пытаюсь использовать PHP для подключения к ServiceNow и получения записей об инцидентах.
Я пытался использовать код ниже, но почему-то я получаю ошибки:
<?php
$credentials = array('login'=>'user', 'password'=>'pass');
$client = new SoapClient("https://blah.com/incident.do?WSDL", $credentials);
$params = array('param1' => 'value1', 'param1' => 'value1');
$result = $client->__soapCall('getRecords', array('parameters' => $params));
// result array stored in $result->getRecordsResult
?>
Я всегда получаю:
Неустранимая ошибка: необработанное исключение SoapFault: [WSDL] SOAP-ERROR: синтаксический анализ WSDL: не удалось загрузить из https: // blah. сервис-сейчас. com /ident.do?WSDL ‘: не удалось загрузить внешнюю сущность «https: // blah. service-now.com /ident.do?WSDL» в /var/www/index.php:3 Трассировка стека: # 0 / var / www / index.php (3): SoapClient-> SoapClient (‘https: //blah.ser…’, Array) # 1 {main} добавлено в /var/www/index.php в строке 3
Конечно, я использую поддомен, который я хочу, вместо бла. Но давайте предположим, что это бла.
Пожалуйста, помогите мне. Этот код в порядке? Где я могу разместить свое имя пользователя? На пользовательской области? или в зоне входа? Как насчет param1 и value1, какой из них мне нужно изменить?
Да, у меня есть разрешение сделать это в моем экземпляре servicenow, я могу делать другие вещи, касающиеся мыла и wsdl.
Перейдите в «Свойства системы» -> «Веб-службы» и убедитесь, что
Msgstr «Требовать авторизацию для входящих запросов WSDL.» не установлен в NO
Если этот флаг установлен на Да, вы не сможете напрямую создать SoapClient в PHP так, как вы это описали.
Других решений пока нет …