我正在使用Zendesk_v2(使用nuget包上传)在ASP.NET MVC5中开发应用程序。我拥有子域easynext.zendesk.com的管理员权限。
以下是我创建故障单的代码:
private static string requestUri = "https://easynext.zendesk.com/api/v2/tickets.json";
private static string _username = "gbalasel@easynext.be";
private static string _password = "MYPASSWORD";
private static ZendeskApi apiZendesk = new ZendeskApi(requestUri, _username, _password, "");
private void CréerTicketZendesk() {
var myTicket = apiZendesk.Tickets.CreateTicket(new Ticket()
{
Subject = "test ticket",
Priority = TicketPriorities.Low
});
}
此代码向我发送422 Unprocessable Entity
错误。
我还在Zendesk为客户制作了一个测试帐户,该方法运行正常,该票据在Zendesk中创建,我也在我的电子邮件帐户中收到。
答案 0 :(得分:2)
状态422很可能是由您的语义错误引起的。根据我的经验,ZD最常在两种情况下返回422:
如果您通过POST创建新票证,请务必检查您设置的所有值,如上面的第二个项目符号所示。
答案 1 :(得分:1)
这告诉你,你还没有形成它可以处理的请求;目标脚本存在(否则您将看到404),正在处理请求(否则您将收到400错误)并且已正确编码(或者您已获得a 415错误)但实际指令无法执行。
了解更多信息。 Error List
答案 2 :(得分:1)
如果有人遇到同样的问题,只需添加到解决方案中即可。
发布票证json时必须 requester_id
。
示例票json -
{
"ticket": {
"subject": "My printer is on fire!",
"requester_id": 123,
"assignee_id": 456,
"type": "incident",
"subject": "Help, my printer is on fire!",
"description": "The fire is very colorful.",
"priority": "High",
"status": "open",
"custom_fields": [
{
"id": 111, // custom field ID
"value": "500.23"
}
]
}
}
由于
答案 3 :(得分:1)
是的,我今天遇到了同样的问题并解决了。问题是您需要在票证结构中添加注释和正文部分。
这就是它的样子(在PHP中):
$ticket = [
'group_id' => '35135',
'title' => 'Title',
'subject' => 'Subject',
'type' => 'ticket',
'comment' => ['body' => 'Comment text.'],
'priority' => 'normal',
'ticket_form_id' => '454524',
'custom_fields' => [
'51325351' => 'test',
],
];
在这里看看: https://developer.zendesk.com/rest_api/docs/core/tickets
答案 4 :(得分:0)
当我尝试创建故障单时,Zendesk API抛出422时出现问题。所有参数均正确,问题在于为其创建票证的受让人不属于该组。
我通过使用FIDDLER查看请求响应来发现此错误。