我可以在没有代码的情况下解析webhook中的raw_body吗?如果在代码中,如何获取先前的步长值?

问题描述 投票:0回答:1

请帮助我在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?

谢谢马丁

webhooks zapier
1个回答
0
投票

好的,我要回答我自己的问题。

CMD行:

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

((如果从Windows进行测试,确保使用双引号(不是单引号,并使用反斜杠分别转义是最重要的)

Catch Raw Hook Trigger and subsequent JavaScript Code Action to extract

核心输出:Output

inputData是Zapier对所有传入数据的合同。这是一个对象。当设置动作的标题时,我将其映射到所选的属性名称:“ raw_body”;为了测试,我还显示了它的输出属性字符串化。

我正在寻找的是使用Raw Catch复制普通Catch的扩展效果。 JSON.parse(raw_body)将字符串表示形式转换为嵌套对象。

输出变量是Zapier向下游收缩的方式。注意,我们得到的就是输出中的内容,以及Zapier注入的“ id”属性。

同时,任何写入console.log的内容最终都会出现在runtime_meta的日志中[]。令人烦恼的是,运行时错误导致runtime_meta无法显示。

运行时元数据Output Metadata


在我的第一个样本中,我将它们置于未解析状态,但是在下一个样本中,我将已解析的全部输出均等化,然后以良好的方式注入raw_body和injection_otherenter image description here

enter image description here(省略日志)

© www.soinside.com 2019 - 2024. All rights reserved.