osticket,通过REST API创建工单

11 投票
3 回答
24564 浏览
提问于 2025-04-18 05:49

我正在尝试通过osticket的REST API创建一个工单,具体的文档可以在这里找到:https://github.com/osTicket/osTicket-1.7/blob/develop/setup/doc/api/tickets.md

但是我遇到的问题是,当我访问/api/tickets.json时,返回的是404错误。这是因为我把它安装在服务器的osticket文件夹里(类似于http://my.net.work.ip/osticket/api/tickets.json - 404)

此外,我还尝试通过CURL命令访问服务器(通过ssh登录),为服务器的IP地址创建了一个API密钥,但得到的回应还是一样。

我这里缺少了什么呢?谢谢!

3 个回答

1

除了修改第18和第19行之外,你还需要确保你输入了正确的IP地址。你可以通过访问你的网站来检查这一点,链接是:http://your.domain.tld/support/scp/logs.php

然后看看是否出现了错误 API Error (401)。如果出现了这个错误,那就检查一下你的IP地址,并为这个IP地址创建一个新的API密钥。

我遇到的问题是,我输入的是我的IPv4地址,但服务器却获取到了我的IPv6地址。

2

文档中似乎缺少了一个重要的部分,就是如何传递API密钥。通过一些测试和上面提到的脚本,我发现了一个叫做X-API-Key的头部信息。这意味着你可以不使用脚本就能创建工单,你可以像这样简单地使用curl:

curl -X POST -H "X-API-Key: 1234567890ABCDEF" -v -d'{"autorespond":false, "source": "API", "name": "Doctor Who", "email":"who@tardis.com", "subject":"Have you seen my Tardis key?", "message":"I have managed to lock myself out of the Tardis, can you send me a spare key?"}' http://support.gallifrey.org/api/tickets.json

不过,这个方法只有在你从创建API密钥时指定的IP地址运行时才有效。

16

所以,我需要在 api/ 后面加上 http.php(也就是 /api/http.php/tickets.json),现在我可以创建工单了。

可以查看一下这个链接 http://tmib.net/using-osticket-1812-api。里面的示例在评论里有这些信息。

在这里输入图片描述

特别重要的部分在第18和第19行。

'url'=>'http://your.domain.tld/api/http.php/tickets.json', // URL to site.tld/api/tickets.json
'key'=>'PUTyourAPIkeyHERE' // API Key goes here
//Edit line 18 to have your URL.
//Edit line 19 by changing "PUTyourAPIkeyHERE" to your API key (aka the "THISISAFAKEAPIKEYHERE!" from earlier).

撰写回答