Zapier脚本编写:捕获错误和重写响应

问题描述:

我正在整合的应用程序在搜索没有找到Zapier认为是错误的匹配项时返回400错误的请求。Zapier脚本编写:捕获错误和重写响应

如何捕获错误并返回[]告诉Zapier没有匹配?

这里的得到的现有post_search代码:

match_person_email_post_search: function(bundle) { 
     console.log(bundle.response.content); 
     var res = JSON.parse(bundle.response.content); 
     var data; 

     if(res.person!==null) 
     { 
      data = [ res.person ]; 
     } 
     else 
     { data = []; } 

     return data; 
    }, 

我应该提一下我在这个脚本菜鸟!

谢谢!

+0

请考虑包括代码,以便我们可以更好地理解您的问题。截至目前,我不知道你在连接什么,以及你正在使用什么语言/工具。 – mam8cc

+0

如果你正在整合应用程序,如果没有找到搜索匹配,你不能调整搜索输出(并且它只是返回'[]')? – Matt

+0

@ mam8cc发布更新现有的Zapier代码。 –

只要搜索API结果返回某些内容,您就应该能够使用Zapier脚本捕获该结果。假设你Zapier搜索键是contact_data,这里的功能是什么样子:

var Zap = { 
    search_contact_post_search: function(bundle) { 
     return bundle.response.content; 
    } 
}; 

所以,你可以检查(该函数内),如果数据是空的或含有除搜索数据以外的东西,只是返回一个空array:

var Zap = { 
    search_contact_post_search: function(bundle) { 
     var response_content = JSON.parse(bundle.response.content); 
     if (!response_content.some_field) { 
      return []; 
     } 
    } 
}; 
+0

谢谢Matt,非常感谢回复!我已经更新了我的帖子,包括现有的pre_search代码(我没有写 - 我是一个初学者,这个脚本的东西)。现在只要阅读它,看起来这个代码应该已经可以做到,但事实并非如此。 –

+0

该函数现在返回什么?你能分享一下'res'的样子吗? – Matt

+0

对不起马特,我不确定什么'res'是根本。我已经和Zapier支持人员交谈过,他们给了我这个: 'match_person_email_post_search:function(bundle){ if(bundle.response.status_code == 400){ return []; } //你处理的其余部分在这里完成 } ' 我做到了(https://www.dropbox.com/s/2q3jzuag5s3znx7/nb_zapier%20app_issue400-2.png?dl=0),但我认为我的语法错误,因为它不起作用。感谢您对我迄今为止缺乏理解的耐心! –