2017-02-06 1 views
0

Je souhaite ajouter un ticket avec une pièce jointe à Freshdesk via l'API. Je sais comment ajouter un ticket sans pièce jointe, et ça marche bien. Cependant, je ne sais pas comment ajouter un ticket avec une pièce jointe. Je veux faire ça avec JSON. J'ai essayé quelque chose comme ceci:Freshdesk API ajouter un ticket avec pièce jointe

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

Dans le champ d'octets j'ai mon tableau d'octets de fichier. Mais ça ne marche pas. Quelqu'un peut-il m'aider à transmettre un fichier JSON à l'API Freshdesk?

+0

Je me bats toujours avec l'envoi du billet. Pouvez-vous s'il vous plaît partager votre code? Je ceci ceci https://github.com/freshdesk/fresh-samples/blob/v1/jquery_samples/create_ticket.html mais cela ne fonctionne pas. – CodeSlave

Répondre

0

Je résolu ce problème avec RestSharp. C'est un outil simple pour l'API REST. Quand je vous envoie des billets avec des pièces jointes i utiliser ce code:

 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); 

Et quand j'envoie un billet sans attachement que j'utilise ce code:

 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);