Разрывы строк в комментариях к новым тикетам - PullRequest
0 голосов
/ 11 мая 2018

Хорошо, я пытаюсь интегрировать открытие билетов ZenDesk в наше приложение.В настоящее время я могу успешно отправлять билеты с ключом API.Однако, когда комментарий содержит разрывы строк, все рушится.

Когда комментарий содержит разрыв строки или любой из следующих примеров, я получаю эту ошибку.

{"error":"Unprocessable Entity","message":"Server could not parse JSON"}

Я пытался заменить разрывы строк на:

  • \r\n
  • \\r\\n
  • \\n \\n
  • \\r \\n
  • </br>
  • \<\/br\>

Я также попытался Url закодировать тело комментария, но это не было декодировано на другом конце, поэтому я получил закодированный комментарий в своем тикете.

Есть ли обходной путь для этого?

1 Ответ

0 голосов
/ 14 мая 2018

Таким образом, мое первоначальное предположение, что мне нужно было заменить разрывы строк, было только частью решения.Другая часть заключалась в том, что в объекте JSON Zendesk вместо использования свойства body мне нужно было использовать свойство html_body (см. Здесь в документах формата JSON)

решение в итоге выглядело примерно так

let formattedBody = Regex.replace "(\r\n|\r|\n)" body "</br>"

(sprintf """{"ticket":{"subject": "%s", "comment": { "html_body": "%s" }}}""" subject formattedBody)

Это разрывает разрывы строк и заменяет их разрывами HTML-строк.Тогда JSON, который публикуется в Zendesk, содержит свойство html_body вместо просто body

...