请帮助我在Raw和标准Webhook之间做出选择。
我在Webhook上接收JSON数据。
我想先过滤有效性,如果有效,继续将JSON有效负载发布到另一个下游Webhook。
我想使用常规的Filter动作进行过滤(避免代码)。我了解操作需要将JSON解析为结构化字段。
有效时,我需要将有效负载(通过自定义请求)重新发布到下游的Webhook。
(顺便说一下,我传入的Webhook有效负载是格式正确的JSON。当我使用标准的Webhook时,Zapier毫无疑问地获得了字段。)
对于触发器,我认为我要么需要使用“ Catch Raw”来接收(未解析的)raw_data,然后制定某种步骤将其解析为字段,要么在常规(预先解析的)上触发webhook并构建一些操作以从所有当前字段值中生成JSON。
我在常规的Webhook上触发,是否可以将(常规)字段的当前值聚合到JSON结构中,以发送到POST(或等效于raw_body的触发器和/或后续步骤的输出值?
如果我必须在代码操作中执行此操作,是否有一个变量可以在以后的操作步骤中访问触发器的JSON raw_data?
谢谢马丁
好的,我要回答我自己的问题。
CMD行:
curl -X POST -H "Content-Type: application/json" -d "{\"username\":\"abc\",\"password\":\"abc\"}" https://hooks.zapier.com/XXXXXXXXXX
((如果从Windows进行测试,确保使用双引号(不是单引号,并使用反斜杠分别转义是最重要的)
inputData是Zapier对所有传入数据的合同。这是一个对象。当设置动作的标题时,我将其映射到所选的属性名称:“ raw_body”;为了测试,我还显示了它的输出属性字符串化。
我正在寻找的是使用Raw Catch复制普通Catch的扩展效果。 JSON.parse(raw_body)将字符串表示形式转换为嵌套对象。
输出变量是Zapier向下游收缩的方式。注意,我们得到的就是输出中的内容,以及Zapier注入的“ id”属性。
同时,任何写入console.log的内容最终都会出现在runtime_meta的日志中[]。令人烦恼的是,运行时错误导致runtime_meta无法显示。
在我的第一个样本中,我将它们置于未解析状态,但是在下一个样本中,我将已解析的全部输出均等化,然后以良好的方式注入raw_body和injection_other