有没有办法将从上一步中的 GET 返回的数组传递到 Zapier 中的代码操作步骤?
Is there a way to pass an array returned from a GET in a previous step to a Code Action step in Zapier?
使用 Zapier UI 设置 zap。
根据要求更新了关于 zap 流的信息:
- 是一个捕获钩子触发器,当用户在源应用程序中执行特定操作时会触发它。
- 是对获取用户订阅的应用程序的 GET API 调用。对于每个用户,返回一个订阅数组。
- 是我的问题步骤 - 我想搜索数组以检查是否有任何订阅与特定目标字符串匹配。
- 有条件的进步。检查第 3 步的结果。如果数组中有匹配项,则不再采取任何操作,它们已经被订阅。如果他们不这样做,则继续。
- 发送一个POST给用户订阅目标订阅。
我有一个 returns 对象数组的 GET,然后我想查找是否有任何对象的 ID 与我的目标类别 ID 字符串相匹配。如果我选择 inputData.categoryId 我无法获得整个数组。如果类别 ID 不在数组中,我需要采取措施。有没有一种方法可以将 GET 的整个有效负载传递到我的下一个代码操作步骤中?
我试过传入 inputData.cateogryId 但它为数组中的每个对象多次运行代码步骤。
我希望能够做这样的事情,其中 inputData 是 GET 的有效负载
const userRecords = JSON.parse(inputData);
output = {isNotSubscribed: false};
isNotSubscribed = userRecords.find(o => o.categoryId === 'string 1');
输入数据在一个数组中,看起来像
[
{
"id": "string",
"identifier": "string",
"name": "string",
"description": "string",
"categoryId": "string",
"contentId": "string",
"signedDate": "2019-08-30T21:44:30.497Z",
},
{
"id": "string",
"identifier": "string",
"name": "string",
"description": "string",
"categoryId": "string",
"contentId": "string",
"signedDate": "2019-08-30T21:44:30.497Z",
},
{
"id": "string",
"identifier": "string",
"name": "string",
"description": "string",
"categoryId": "string",
"contentId": "string",
"signedDate": "2019-08-30T21:44:30.497Z",
}
]
您应该考虑使用 Python 代码,而不是为您的 "GET" 使用 Zapier UI。 Postman 可以轻松地将您的请求从应用程序转换为 Python 代码。
如果这样做,python "GET" 的输出将是一个 dic 数组。它应该看起来像这样:
url ="yoururl"
params= {"key":"value"}
payload = {"key":"value"}
headers = {"key":"value"}
response = requests.request("GET", url, data=payload, headers=headers)
来自 Zapier 平台团队的大卫。
我不会处理 Zapier 在步骤之间序列化数据的方式,而是删除上面的步骤 2 并将其折叠到 JS 代码步骤中。这样,整个代码将是:
// normally you'd need to wrap this in an `async` function, but Zapier does that for you
const res = await fetch('https://somesite.com/data');
const userRecords = await res.json();
return {isNotSubscribed: userRecords.find(o => o.categoryId === 'string 1')};
使用 Zapier UI 设置 zap。
根据要求更新了关于 zap 流的信息:
- 是一个捕获钩子触发器,当用户在源应用程序中执行特定操作时会触发它。
- 是对获取用户订阅的应用程序的 GET API 调用。对于每个用户,返回一个订阅数组。
- 是我的问题步骤 - 我想搜索数组以检查是否有任何订阅与特定目标字符串匹配。
- 有条件的进步。检查第 3 步的结果。如果数组中有匹配项,则不再采取任何操作,它们已经被订阅。如果他们不这样做,则继续。
- 发送一个POST给用户订阅目标订阅。
我有一个 returns 对象数组的 GET,然后我想查找是否有任何对象的 ID 与我的目标类别 ID 字符串相匹配。如果我选择 inputData.categoryId 我无法获得整个数组。如果类别 ID 不在数组中,我需要采取措施。有没有一种方法可以将 GET 的整个有效负载传递到我的下一个代码操作步骤中?
我试过传入 inputData.cateogryId 但它为数组中的每个对象多次运行代码步骤。
我希望能够做这样的事情,其中 inputData 是 GET 的有效负载
const userRecords = JSON.parse(inputData);
output = {isNotSubscribed: false};
isNotSubscribed = userRecords.find(o => o.categoryId === 'string 1');
输入数据在一个数组中,看起来像
[
{
"id": "string",
"identifier": "string",
"name": "string",
"description": "string",
"categoryId": "string",
"contentId": "string",
"signedDate": "2019-08-30T21:44:30.497Z",
},
{
"id": "string",
"identifier": "string",
"name": "string",
"description": "string",
"categoryId": "string",
"contentId": "string",
"signedDate": "2019-08-30T21:44:30.497Z",
},
{
"id": "string",
"identifier": "string",
"name": "string",
"description": "string",
"categoryId": "string",
"contentId": "string",
"signedDate": "2019-08-30T21:44:30.497Z",
}
]
您应该考虑使用 Python 代码,而不是为您的 "GET" 使用 Zapier UI。 Postman 可以轻松地将您的请求从应用程序转换为 Python 代码。
如果这样做,python "GET" 的输出将是一个 dic 数组。它应该看起来像这样:
url ="yoururl"
params= {"key":"value"}
payload = {"key":"value"}
headers = {"key":"value"}
response = requests.request("GET", url, data=payload, headers=headers)
来自 Zapier 平台团队的大卫。
我不会处理 Zapier 在步骤之间序列化数据的方式,而是删除上面的步骤 2 并将其折叠到 JS 代码步骤中。这样,整个代码将是:
// normally you'd need to wrap this in an `async` function, but Zapier does that for you
const res = await fetch('https://somesite.com/data');
const userRecords = await res.json();
return {isNotSubscribed: userRecords.find(o => o.categoryId === 'string 1')};