在Zendesk中创建票证时出现422错误

时间:2014-04-04 15:47:40

标签: zendesk

我正在使用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中创建,我也在我的电子邮件帐户中收到。

5 个答案:

答案 0 :(得分:2)

状态422很可能是由您的语义错误引起的。根据我的经验,ZD最常在两种情况下返回422:

  1. 尝试对状态已关闭的故障单进行更新。在这种情况下,如果可能,您需要创建新故障单或后续故障单。
  2. 在故障单的故障单对象或子对象的某些属性上设置无效值。这对于调试来说可能特别繁琐,因为ZD响应通常不会告诉您哪个属性具有无效值。您应该检查您在故障单上设置的所有整数值。例如,我在使用Sandbox系统开发时使用我的生产Zendesk中的组ID进行了刻录(他们很可能对所有内容都有完全不同的ID,包括自定义字段,组,用户等)。
  3. 如果您通过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查看请求响应来发现此错误。