2017-02-06 12 views
0

Я хочу добавить билет с приложением к Freshdesk через API. Я знаю, как добавить билет без приложения, и он работает нормально. Однако я не знаю, как добавить билет с приложением. Я хочу сделать это с JSON. Я пробовал что-то вроде этого:Freshdesk API добавить билет с приложением

string json = $"{{\"helpdesk_ticket\": {{\"subject\":\"{subject}\",\"description_html\":\"{fullDescription}\",\"name\":\"{user}\",\"attachments\":{{\"\":[{{\"resource\":\"{bytes}\"}}]}}}}}}"; 

В поле байтов у меня есть массив байтов файлов. Но это не работает. Может кто-нибудь помочь мне передать файл в JSON API Freshdesk?

+0

Я до сих пор борюсь с отправкой билета. Не могли бы вы поделиться своим кодом? Я это https://github.com/freshdesk/fresh-samples/blob/v1/jquery_samples/create_ticket.html, но он не работает. – CodeSlave

ответ

0

Я решил эту проблему с RestSharp. Это простой инструмент для REST API. Когда я высылаю билеты с вложениями я использовать этот код:

 var client = new RestClient(_freshdeskUrl); 
     client.Authenticator = new HttpBasicAuthenticator(_apiKey, "X"); 
     var request = new RestRequest("", Method.POST); 

     request.AddHeader("Accept", "application/json"); 
     request.AddHeader("Content-Type", "multipart/form-data"); 
     request.AddParameter("email", "[email protected]"); 
     request.AddParameter("subject", "Subject"); 
     request.AddParameter("description", "Description"); 
     request.AddParameter("name", "Name"); 
     request.AddParameter("status", "2"); 
     request.AddParameter("priority", "1"); 
     request.AddFile("attachments[]", bytes, "Logs.txt", "text/plain"); 

     var response = client.Execute(request); 

И когда я шлю билет без привязанности я использую этот код:

 RestClient client = new RestClient(_freshdeskUrl); 
     client.Authenticator = new HttpBasicAuthenticator(_apiKey, "X"); 
     RestRequest request = new RestRequest("", Method.POST); 

     request.AddHeader("Accept", "application/json"); 

     request.AddJsonBody(new 
     { 
      email = "[email protected]", 
      subject = "Subject", 
      description = "Description", 
      name = "Name", 
      status = 2, 
      priority = 1 
     }); 

     var response = client.Execute(request);