我正在使用Zapier将CRM和Facebook Lead Ads集成在一起,我可以在Facebook中创建销售线索,并在CRM中创建它,而不会出现任何问题。
发布成功(即成功创建销售线索)后,我很好奇我应该返回什么,我会想到
return Ok();
就足够了。相反,我收到一条错误消息:
-获得了非对象结果,应该是create()中的对象 发生了什么(您看到这是因为您是管理员): 使用bundle执行create.ZapLead.operation.perform 无效的API响应: -得到了非对象结果,应该是create()中的对象
我应该返回什么?
发布该帖子的代码是:
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}`);
}
});
有什么想法吗?
谢谢
答案 0 :(得分:1)
Zapier Platform团队的David在这里。
虽然您的答案在技术上是正确的,但我想添加一些有关错误以及您的解决方案为何起作用的背景信息。
Zapier希望javascript对象(基本上是有效的并用{}
包装的任何对象)都来自create函数。这就是JSON.parse(response.content)
起作用的原因,它返回服务器所说的内容。如果代码不是200,则代码会引发错误,如果 是200,则代码不会返回任何内容。由于undefined
的类型不是Object
,因此错误重新看到被抛出。
尽管{"Success":"Success","Attempt":null,"Id":null,"RequestId":null}
完全是一个有效的响应(它是一个对象!),但对于最终用户来说,返回有关已创建的新线索的数据更为有用。这样,它可以在下游用于其他操作。
让我知道您是否还有其他问题!
作为旁注,我们对如何使该错误消息更加清晰持开放态度。这是一个开发人员为之奋斗的地方。
答案 1 :(得分:0)
我想我找到了。如果成功,看来我需要返回此值:
{“ Success”:“ Success”,“ Attempt”:null,“ Id”:null,“ RequestId”:null}