Zapier-无效的API响应

时间:2018-08-20 11:08:38

标签: zapier

我正在使用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}`);
    }
});

有什么想法吗?

谢谢

2 个答案:

答案 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}