Код Zapier: вызвать несколько веб-хуков - PullRequest
0 голосов
/ 24 июня 2018

Я пытаюсь отправить несколько webhooks в зависимости от количества элементов в массиве JSON. Я использую пример из: как вызвать webhook из кода zapier

Я попробовал, и это почти работает, как и планировалось. У меня проблема в том, что когда у меня массив JSON из 4 элементов, он отправляет 16 веб-хуков вместо 4. Если у меня массив JSON из 3 элементов, он отправляет 9 веб-хуков вместо 3.

Я использую inputData.items для вставки массива JSON. Кто-нибудь знает, почему элементы в массиве JSON умножаются?

Я использовал:

const elements = JSON.parse(inputData.items)
var body = elements;
var options = {
  "url": "URL.COM",
  "method": "POST",
  "headers": {'Content-Type': 'application/json'},
  "body": JSON.stringify(body)
},
requests = elements.map(mapDataToSettings);

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

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

Кто-нибудь видит, почему мои веб-крючки часто запускаются?

Спасибо

1 Ответ

0 голосов
/ 25 июня 2018

Дэвид здесь, из команды Zapier Platform.

Трудно сказать наверняка, не видя ваш zap, но я предполагаю, что вы вводите .items с предыдущего шага кода, где он возвращается в виде массива?Если это так, вы сталкиваетесь с недокументированной функцией кода, где выполняются последующие шаги для каждого элемента в массиве.Обычно это желательно, но так как вы делаете цикл в коде, он вам не нужен.

Предполагая, что это так, у вас есть два варианта:

  1. Вернуть строку sjon из предыдущего шага (вместо массива), чтобы этот шаг кода выполнялся только один раз.
  2. Измените этот код, чтобы получить только один элемент и выполнить с ним запрос.

Если что-то еще происходит, обновите ваш вопрос с помощью zap id (это не конфиденциальная информация), и я могу взглянуть!

...