1

好的,所以我正在尝试将开放 ZenDesk 票证集成到我们的应用程序中。我目前可以使用 api 密钥成功发布票证。但是,当注释包含换行符时,一切都会崩溃。

当注释包含换行符或以下任何示例时,我会收到此错误。

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

我尝试将换行符替换为:

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

我还尝试对评论正文进行 Url 编码,但在另一端没有解码,所以我最终在我的票上得到了编码评论。

有解决办法吗?

4

1 回答 1

1

所以我最初的假设是我需要替换换行符只是解决方案的一部分。另一部分是在 Zendesk JSON 对象中,而不是使用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 换行符。然后发布到 Zendesk 的 JSON 在其中包含html_body属性,而不仅仅是body

于 2018-05-14T15:50:15.847 回答