为什么我的 Zapier 集成动态字段不起作用?
Why doesn't my Zapier Integration Dynamic Field work?
我构建了一个简单的 zapier 集成并且运行良好。但是,我正在添加动态字段。当我测试 zap 时,这一切似乎再次完美运行。我的动态表单域如我所料出现。
问题是将那些动态表单的值发送到我的 API。我正在使用 zapier 控制台,当我配置 API 请求时,我使用的是以下内容:
其中 body['custom_fields']
应该发送我所有的动态字段甚至所有字段。但是当它命中我的 API custom_fields
参数时是空白的。
const options = {
url: 'https://example_url/endpoint',
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': `Bearer ${bundle.authData.auth_token}`
},
body: {
'email': bundle.inputData.email,
'custom_fields': bundle.inputData
/**
I've tried the following with no luck:
'custom_fields': bundle.inputData.fields
'custom_fields': bundle.inputData.undefined
'custom_fields': bundle.inputData
*/
}
}
return z.request(options)
.then((response) => {
response.throwForStatus();
const results = response.json;
// You can do any parsing you need for results here before returning them
return results;
});
好吧,几天后,这是最简单的答案。
显然不能通过参数发送对象。
所以不用
'custom_fields': bundle.inputData
我只是将整个对象添加到参数中,它会处理所有键和值
params: bundle.inputData
这里是全文
const options = {
url: 'https://apiendpoint.com',
method: 'POST',
headers: {
'Authorization': `Bearer ${bundle.authData.auth_token}`
},
params: bundle.inputData,
}
return z.request(options)
.then((response) => {
response.throwForStatus();
const results = response.json;
// You can do any parsing you need for results here before returning them
return results;
});
您可以像文档中解释的那样使用扩展运算符 ...bundle.inputData
:
https://platform.zapier.com/docs/input-designer#how-to-include-dynamic-fields-in-api-calls
const options = {
url: 'https://example_url/endpoint',
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': `Bearer ${bundle.authData.auth_token}`
},
body: { ...bundle.inputData }
}
您甚至可以像这样命名您的请求数据:
body: {
request: { ...bundle.inputData }
}
注意:扩展运算符在 Zapier 代码编辑器中引发语法错误,但它有效。
我构建了一个简单的 zapier 集成并且运行良好。但是,我正在添加动态字段。当我测试 zap 时,这一切似乎再次完美运行。我的动态表单域如我所料出现。
问题是将那些动态表单的值发送到我的 API。我正在使用 zapier 控制台,当我配置 API 请求时,我使用的是以下内容:
其中 body['custom_fields']
应该发送我所有的动态字段甚至所有字段。但是当它命中我的 API custom_fields
参数时是空白的。
const options = {
url: 'https://example_url/endpoint',
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': `Bearer ${bundle.authData.auth_token}`
},
body: {
'email': bundle.inputData.email,
'custom_fields': bundle.inputData
/**
I've tried the following with no luck:
'custom_fields': bundle.inputData.fields
'custom_fields': bundle.inputData.undefined
'custom_fields': bundle.inputData
*/
}
}
return z.request(options)
.then((response) => {
response.throwForStatus();
const results = response.json;
// You can do any parsing you need for results here before returning them
return results;
});
好吧,几天后,这是最简单的答案。
显然不能通过参数发送对象。
所以不用
'custom_fields': bundle.inputData
我只是将整个对象添加到参数中,它会处理所有键和值
params: bundle.inputData
这里是全文
const options = {
url: 'https://apiendpoint.com',
method: 'POST',
headers: {
'Authorization': `Bearer ${bundle.authData.auth_token}`
},
params: bundle.inputData,
}
return z.request(options)
.then((response) => {
response.throwForStatus();
const results = response.json;
// You can do any parsing you need for results here before returning them
return results;
});
您可以像文档中解释的那样使用扩展运算符 ...bundle.inputData
:
https://platform.zapier.com/docs/input-designer#how-to-include-dynamic-fields-in-api-calls
const options = {
url: 'https://example_url/endpoint',
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': `Bearer ${bundle.authData.auth_token}`
},
body: { ...bundle.inputData }
}
您甚至可以像这样命名您的请求数据:
body: {
request: { ...bundle.inputData }
}
注意:扩展运算符在 Zapier 代码编辑器中引发语法错误,但它有效。