如何在 VBA 中使用 POST JSON 请求将票证写入 Zendesk API?



注意:我也在Excel先生上发布了这个。 链接在这里。

我正在尝试使用 VBA 从 Access/Excel 编写到 Zendesk API 的票证。 我不断收到以下错误:

"错误":"无法处理的实体","消息":"服务器无法解析 JSON">

我的代码如下:(分别将我的实际 Zendesk 域、用户名和令牌替换为"zendeskdomain"、"用户名"和"token"(。

Dim strURL As String, strParse() As String, jsonStr As String
Dim hreq As New MSXML2.XMLHTTP60
Dim tixScript As Object
strURL = "https://zendeskdomain.zendesk.com/api/v2/tickets.json"
hreq.Open "POST", strURL, 0, "username/token", "token"
hreq.setRequestHeader "User-Agent", "Chrome/78.0.3904.108"
hreq.setRequestHeader "Content-Type", "application/json"
hreq.setRequestHeader "Accept", "application/json"
jsonStr = """{""ticket"": {""subject"": ""Testing post requests"", ""requester_id"":393329203772, ""comment"": { ""body"": ""This will work"" }}}"""
hreq.Send jsonStr
MsgBox hreq.responseText

我能够使用相同的JSON字符串并使用实际的Zendesk Developer API创建票证。 我还能够使用上面 POST 代码中使用的相同三个请求标头建立 GET 连接以工作。

我觉得我错过了一些简单的东西,但我似乎无法让它工作。

任何帮助将不胜感激。

谢谢

双引号的外部对是不必要的,并且jsonStr包含无效的 JSON。在 VBA 中使用Debug.Print表明jsonStr最终包含:

"{"ticket": {"subject": "Testing post requests", "requester_id":393329203772, "comment": { "body": "This will work" }}}"

jsonStr设置为:

jsonStr = "{""ticket"": {""subject"": ""Testing post requests"", ""requester_id"":393329203772, ""comment"": { ""body"": ""This will work"" }}}"

相关内容

  • 没有找到相关文章

最新更新