Могу ли я разобрать raw_body в webhook без кода? Если в коде, как получить значения предыдущего шага?

Помогите мне выбрать между Raw и стандартным Webhook, пожалуйста.

Я получаю данные JSON на Webhook.

Я хочу сначала отфильтровать действительность и, если он действителен, продолжить отправку полезной нагрузки JSON в следующий веб-перехватчик.

Я хочу использовать обычное действие Filter для фильтрации (избегая кода). Я понимаю, что действия требуют разбора JSON на структурированные поля.

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

(Кстати, моя входящая полезная нагрузка веб-перехватчика - это хорошо сформированный JSON. Когда я использую стандартный веб-перехватчик, у Zapier нет проблем с получением полей.)

Что касается триггера, я считаю, что либо мне нужно использовать «Catch Raw» для получения (не проанализированных) raw_data, а затем разработать какой-то шаг для разбора их на поля, либо запускать по обычному (предварительно проанализированному) веб-перехватчику и создать действие, чтобы создать JSON из всех текущих значений поля.

Я запускаю на обычном веб-перехватчике, могу ли я агрегировать текущие значения (нормальных) полей в структуру JSON для POST (т.е. эквивалент raw_body) значений триггера и / или последующих шагов?

Если мне нужно сделать это в кодовом действии, есть ли переменная, которая может получить доступ к JSON raw_data триггера на последующих этапах действия?

Спасибо, Мартин


person Martin Cleaver    schedule 16.01.2020    source источник


Ответы (1)


Хорошо, я отвечу на свой вопрос.

Линия CMD:

curl -X POST -H "Content-Type: application/json"  -d "{\"username\":\"abc\",\"password\":\"abc\"}" https://hooks.zapier.com/XXXXXXXXXX

(При тестировании из Windows первостепенное значение имеет использование двойных кавычек (не одинарных) и обратной косой черты с их экранированием по отдельности)

Поймать триггер Raw Hook и последующее действие кода JavaScript для извлечения

Основной вывод:
 Вывод

inputData - это контракт Zapier для всех входящих данных. Это объект. Когда я настраиваю заголовки для действия, я сопоставляю их с именем атрибута, которое я выбрал: "raw_body"; для тестирования я также показал его строковый атрибут вывода.

Что я искал, так это воспроизвести эффект расширения обычного улова с помощью сырого улова. JSON.parse (raw_body) превращает строковое представление во вложенные объекты.

Выходная переменная - это то, как контракт Zapier переходит в нисходящий поток. Обратите внимание, что мы получаем, это то, что мы помещаем в вывод, плюс атрибут «id», который внедрил Zapier.

Между тем, все, что написано в console.log, попадает в runtime_meta, в logs []. Раздражает то, что из-за ошибок времени выполнения runtime_meta не отображается.

Метаданные среды выполнения  Выходные метаданные


В моем первом примере я поместил их под анализируемый, но в следующем я использовал весь анализируемый вывод, чтобы он был равно проанализирован, а затем также вводил raw_body и injected_other, для хорошей оценки  введите описание изображения здесь

введите здесь описание изображения (журналы опущены)

person Martin Cleaver    schedule 18.01.2020