Отправка пользовательских полей в виде массива в приложении 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}];
Другие вопросы по тегам