Отправка пользовательских полей в виде массива в приложении Zendesk
Я разрабатываю приложение в Zendesk. В какой-то момент я создаю новый билет. Вот соответствующий код:
createTicketValues: function(){
var newTicket = {};
newTicket.ticket = {};
...
newTicket.ticket.custom_fields = [{id: 25064823, value: document.getElementById('25064823').value},{id: 360011962831, value: document.getElementById('360011962831').value}];
...
app.createTicket( newTicket);
},
createTicket: function(ticketData){
console.log(ticketData);
var request =
{
url: '/api/v2/tickets.json',
type: 'POST',
dataType: 'json',
data: ticketData
};
client.request(request).then(function (data){
app.addParentToProject();
})
},
Тем не менее, новый билет не имеет ни одного из этих настраиваемых полей. Что странно, потому что:
Я также добавляю другие поля (идентификатор формы заявки, приоритет...), которые сохраняются правильно
Если бы я только сохранить одно поле, как это:
newTicket.ticket.custom_fields = {id: 25064823, value: document.getElementById('25064823').value};
или как это
newTicket.ticket.custom_fields = {id: 360011962831, value: document.getElementById('360011962831').value};
Одно настраиваемое поле сохраняет правильно (но я должен выбрать, чтобы сохранить одно или другое)
Я делаю что-то не так при объявлении массива?
Для меня это выглядит так же, как описано в их документации ( https://developer.zendesk.com/rest_api/docs/core/tickets), но я несколько часов пытался исправить это и не смогли.
1 ответ
В документации говорится о том, чтобы поместить свойства id и value в двойные кавычки - не могли бы вы попробовать? В противном случае содержимое кажется в порядке.
newTicket.ticket.custom_fields = [{"id": 25064823, "value": document.getElementById('25064823').value},{"id": 360011962831, "value": document.getElementById('360011962831').value}];