Zapier - 无效 API 响应
Zapier - Invalid API Response
我正在使用 Zapier 将 CRM 与 Facebook 线索广告集成,我可以在 Facebook 中创建线索并在 CRM 中创建线索,没有任何问题。
成功 post 后(即成功创建线索),我很好奇我应该返回什么,我本以为
return Ok();
就够了。相反,我收到一条错误消息:
- 得到了一个非对象结果,期望从 create () 得到一个对象
发生了什么(你看到这个是因为你是管理员):
执行 creates.ZapLead.operation.perform 与捆绑
无效 API 响应:
- 得到一个非对象结果,期望从 create ()
得到一个对象
我应该返回什么?
生成 post 的代码是:
perform: (z, bundle) => {
const promise = z.request({
url: 'https://{{bundle.authData.subdomain}}.ngrok.io/api/zapier/create/lead/' + bundle.inputData.lead_type + '/' + bundle.inputData.core_customerTypeId,
method: 'POST',
body: JSON.stringify({
fields: bundle.inputData
}),
headers: {
'content-type': 'application/json'
}
});
// return promise.then((response) => JSON.parse(response.content));
return promise.then((response) => {
if (response.status != 200) {
throw new Error(`Unexpected status code ${response.status}`);
}
});
有什么想法吗?
谢谢,
我想我找到了。看来我需要 return 如果成功的话:
{"Success":"Success","Attempt":null,"Id":null,"RequestId":null}
来自 Zapier Platform 团队的 David。
虽然您的回答在技术上是正确的,但我想添加一些有关错误的上下文以及您的解决方案为何有效。
Zapier 期望一个 javascript 对象(基本上是任何有效的并包装在 {}
中的对象)从创建函数中出来。这就是 JSON.parse(response.content)
工作的原因,它是 returning 服务器所说的任何内容。如果它不是 200,您的代码将抛出错误,但如果 是 200,则不会 return 任何东西。因为 undefined
不是 [=13] 类型=],你看到的错误被抛出。
虽然 {"Success":"Success","Attempt":null,"Id":null,"RequestId":null}
完全是一个有效的响应(它是一个对象!),但对于最终用户来说 return 有关已创建的新潜在客户的数据更有用。这样,它就可以在下游用于其他操作。
如果您还有其他问题,请告诉我!
附带说明一下,我们对如何使该错误消息更加清晰持开放态度;这是一个开发者与很多人斗争的地方。
我正在使用 Zapier 将 CRM 与 Facebook 线索广告集成,我可以在 Facebook 中创建线索并在 CRM 中创建线索,没有任何问题。
成功 post 后(即成功创建线索),我很好奇我应该返回什么,我本以为
return Ok();
就够了。相反,我收到一条错误消息:
- 得到了一个非对象结果,期望从 create () 得到一个对象 发生了什么(你看到这个是因为你是管理员): 执行 creates.ZapLead.operation.perform 与捆绑 无效 API 响应: - 得到一个非对象结果,期望从 create ()
得到一个对象我应该返回什么?
生成 post 的代码是:
perform: (z, bundle) => {
const promise = z.request({
url: 'https://{{bundle.authData.subdomain}}.ngrok.io/api/zapier/create/lead/' + bundle.inputData.lead_type + '/' + bundle.inputData.core_customerTypeId,
method: 'POST',
body: JSON.stringify({
fields: bundle.inputData
}),
headers: {
'content-type': 'application/json'
}
});
// return promise.then((response) => JSON.parse(response.content));
return promise.then((response) => {
if (response.status != 200) {
throw new Error(`Unexpected status code ${response.status}`);
}
});
有什么想法吗?
谢谢,
我想我找到了。看来我需要 return 如果成功的话:
{"Success":"Success","Attempt":null,"Id":null,"RequestId":null}
来自 Zapier Platform 团队的 David。
虽然您的回答在技术上是正确的,但我想添加一些有关错误的上下文以及您的解决方案为何有效。
Zapier 期望一个 javascript 对象(基本上是任何有效的并包装在 {}
中的对象)从创建函数中出来。这就是 JSON.parse(response.content)
工作的原因,它是 returning 服务器所说的任何内容。如果它不是 200,您的代码将抛出错误,但如果 是 200,则不会 return 任何东西。因为 undefined
不是 [=13] 类型=],你看到的错误被抛出。
虽然 {"Success":"Success","Attempt":null,"Id":null,"RequestId":null}
完全是一个有效的响应(它是一个对象!),但对于最终用户来说 return 有关已创建的新潜在客户的数据更有用。这样,它就可以在下游用于其他操作。
如果您还有其他问题,请告诉我!
附带说明一下,我们对如何使该错误消息更加清晰持开放态度;这是一个开发者与很多人斗争的地方。