【问题标题】:Getting incident records from ServiceNow using PHP使用 PHP 从 ServiceNow 获取事件记录
【发布时间】:2014-10-29 23:13:36
【问题描述】:

我正在尝试使用 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: Parsing WSDL: Couldn't load from 'https : // blah .立即服务。 com / event.do?WSDL':无法在 /var/www/index.php:3 中加载外部实体“https://blah.service-now.com/event.do?WSDL”堆栈跟踪:#0 / var/www/index.php(3): SoapClient->SoapClient('https://blah.ser...', Array) #1 {main} 在第 3 行的 /var/www/index.php 中抛出

当然,我使用我想要的子域而不是等等。但是让我们假设它是废话。

请帮助我。这段代码可以吗?我在哪里放置我的用户名?在用户区?还是在登录区? param1 和 value1 呢,我需要更改其中的哪一个?

是的,我有权在我的 servicenow 实例上执行此操作,我可以执行有关 soap 和 wsdl 的其他事情。

【问题讨论】:

  • 确保 openssl PHP 模块已安装并启用
  • 通过本站测试是否也可以接受? runnable.com/UovXqHcwNjgVAAGV/…
  • 确保您可以通过使用 curl 之类的基本身份验证通过 http 实际获取它: curl -v 'USER:PASSWORD@INSTANCENAME.service-now.com/incident.do?WSDL'
  • 是的,WSDL 在我的 service-now 实例上处于活动状态。我可以从中得到结果。
  • 我的意思是,直接转到您的终端,对我提供的示例 URL 模板运行 curl -v 并粘贴回结果。很有可能获得一些有意义的诊断信息。

标签: php servicenow


【解决方案1】:

转到“系统属性”->“Web 服务”并确保 “需要对传入的 WSDL 请求进行授权。” ist 设置为 NO

如果此标志设置为“是”,您将无法按照您描述的方式在 PHP 中直接创建 SoapClient。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-15
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    • 2011-01-14
    • 2016-12-27
    • 2017-08-09
    • 2017-05-23
    相关资源
    最近更新 更多