как запустить веб-перехватчик из кода zapier

У меня 2 запа. Сначала заканчивается блоком Code by Zapier, где я анализирую входную информацию из предыдущих шагов, получая массив с данными, например:

var elements = [{id: 12, calculatedValue: 13},{id: 13, calculatedValue: 'red'}]

затем в цикле прохожу по нему, создаю тела запросов

var options = {
      "url": "https://hooks.zapier.com/hooks/catch/xxxxxx/xxxxxx/",
      "method": "POST"
    },
    requests = elements.map(mapDataToSettings);

function mapDataToSettings(elem) {
  var settings = Object.assign({}, options);
  settings.data = JSON.stringify(elem);
  return settings;
};

Затем я выполняю HTTP-вызовы с Fetch API для всех этих запросов:

Promise.all(requests.map(grabContent))
.then(function(data){ callback(null, {requestsMade: data});});

function grabContent(options) {
  return fetch(options.url, options)
     .then(function(res) {return res.json();});
};

N.B. callback - это функция Zapier для обработки асинхронных результатов.

Этот код успешно запускается, и я вижу результаты:

введите здесь описание изображения

Но эти запросы не регистрируются в веб-перехватчике (адрес правильный. Проверено дважды).

В чем может быть причина этого? Как исправить мой код, чтобы запросы активировали веб-перехватчик?


person zmii    schedule 01.09.2017    source источник


Ответы (1)


Возможно, у вас нет body элемента в вашем options, который отправляется с помощью метода fetch. В документации это показано как POST пример: { method: 'POST', body: 'a=1' }, поэтому, возможно, попробуйте сделать это именно так.

person Matt    schedule 18.09.2017
comment
Да, вот в чем проблема. Я где-то видел, что объект выборки информации имел свойство data, поэтому допустил эту опечатку. - person zmii; 18.09.2017