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

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

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

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

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

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

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

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

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

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

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

1 Ответ

0 голосов
/ 18 января 2020

Хорошо, я собираюсь ответить на свой вопрос.

Строка CMD:

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

(При тестировании с Windows, убедитесь, что используются двойные кавычки (не одиночные) и backsla sh исключение из них по отдельности имеет первостепенное значение)

Catch Raw Hook Trigger and subsequent JavaScript Code Action to extract

Основной выход:
Output

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

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

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

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

Метаданные времени выполнения Output Metadata


В моем первом примере я поместил их под анализом, но в этом следующем я использовал анализируемый весь вывод для равного анализа, а затем вставил raw_body и injected_other также, для хорошей меры enter image description here

enter image description here (журналы опущены)

...