【问题标题】:Assistance with PHP SOAP call - Building the call based on API documentation协助 PHP SOAP 调用 - 基于 API 文档构建调用
【发布时间】:2014-01-15 01:05:24
【问题描述】:

我正在尝试通过OTRS Ticketing system 请求一些票务详细信息。我试过在网上搜索 OTRS API 中的 'TicketSearch()' 运算符,但没有运气

我知道 SOAP 连接很好,因为以下 'User' 对象和 'GetUserData()' 运算符正在响应有效结果和所有用户数据:

try {
 $result = $client->__soapCall("Dispatch", array($user, $pass, "UserObject", "GetUserData", "UserID" , 2));
}

现在,当我将该 SOAP 调用从用户搜索更改为票证搜索时,我得到的响应是“NULL”。

try {
 $result = $client->__soapCall("Dispatch", array($user, $pass, "TicketObject", "TicketSearch",  "Result", array("ARRAY","HASH","COUNT"), "QueueIDs", 10, "StateType", "Open"));
}

这对我来说并不奇怪,因为我不确定如何将以下所需值转换为 SOAP 请求:

结果 => '数组' || '哈希' || '计数'

您可以查看对应的API documentation here,然后搜索'TicketSearch()'。任何有关解决该请求的帮助将不胜感激。我的最终目标是获得 10 号队列中的工单列表。

【问题讨论】:

    标签: soap php web-services soap otrs


    【解决方案1】:

    首先,|| 是 perl 中的逻辑或运算符。因此,您显示的文档 sn-p 表示 COUNT 或 ARRAY 或 HASH;你必须选择一个。如果您使用 COUNT,您只会返回与您的搜索条件匹配的票数。

    其次,您需要提供执行搜索的代理的 UserID,如果您没有(因为您的脚本用于某种集成),您始终可以使用 ID 号 1;可以访问所有队列。

    最后,QueueIDs 参数采用队列 ID 数组;因此您可以使用单个参数搜索多个队列 ID。

    $result = $client->__soapCall("Dispatch", array($user, $pass,
        "TicketObject", "TicketSearch",
        "UserID",    1, 
        "Result",    "ARRAY",
        "QueueIDs",  array(1), 
        "StateType", "Open"
    ));
    

    请注意,RPC 接口是低级的,它暴露了原始的 OTRS API。它不是很精巧,有时您需要做很多工作才能获得所需的数据,但它却非常强大。

    “新”接口是基于 WSDL 的 Web 服务接口;这更加封装和清洁。它有两个缺点,1; PHP 不像 .NET 或 Java 那样支持使用 WSDL,并且 2;它只公开了 OTRS API 的一小部分,仅用于创建/搜索/修改票证和处理常见问题解答(知识库)。添加/删除队列、服务或客户等内容(尚)不可用。

    【讨论】:

    • 感谢 MichielB,我在 API 文档中没有看到任何必须具有“用户 ID”,1 的内容。现在一切正常。
    • 确实需要 UserID,它在 TicketSearch 的(相当大的)文档中:# user search (UserID is required) UserID => 123, Permission => 'ro' || 'rw', otrs.perl-services.de/docs/otrs/rel-3_3/…
    • @MichielB 如何使用 php 中的 soap api 在 otrs 中显示所有新票?你能给我一些想法吗
    • 嗨,在我的情况下,我只是为仪表板收集“开放票证数量”。这是我使用的代码,但请注意,我在 Intranet 上运行它,因此没有花时间在安全上:codeshare.io/2R1T8
    • @SujanShrestha TicketSearch 调用仅返回票证 ID 列表。您需要根据 TicketID 对 TicketGet 执行一次额外的调用。有关 TicketGet API 调用的更多信息,请参阅otrs.github.io/doc/api/otrs/stable/Perl/Kernel/System/…
    猜你喜欢
    • 1970-01-01
    • 2012-10-28
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多