【问题标题】:Zapier Scripting: Catch error and rewrite responseZapier 脚本:捕获错误并重写响应
【发布时间】:2016-06-19 07:30:08
【问题描述】:

当搜索未找到 Zapier 将其视为错误的匹配项时,我正在集成的应用程序返回 400 错误请求。

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

这里是 got 的现有 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;
    },

我可能应该提到我是这个脚本的新手!

谢谢!

【问题讨论】:

  • 请考虑包含代码,以便我们更好地了解您的问题。截至目前,我不知道您连接的是什么,以及您使用的是什么语言/工具。
  • 如果您正在集成应用程序,如果没有找到搜索匹配项,您不能调整搜索输出(并且只返回[])吗?
  • @mam8cc 使用现有 Zapier 代码更新帖子。

标签: zapier


【解决方案1】:

只要搜索 API 结果返回某些内容,您就应该能够使用 Zapier 脚本捕获这些内容。假设您的 Zapier 搜索键是 contact_data,该函数的外观如下:

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

因此,您可以(在该函数中)检查数据是否为空或包含搜索数据以外的内容,然后返回一个空数组:

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

【讨论】:

  • 感谢马特,非常感谢您的回复!我已经更新了我的帖子以包含现有的 pre_search 代码(我没有编写 - 我是这个脚本的初学者)。现在只是阅读它,似乎这段代码应该已经可以解决问题,但它没有。
  • 该函数现在返回什么?你能分享一下res 的样子吗?
  • 抱歉,马特,我完全不确定 res 是什么。我已经与 Zapier 支持人员交谈过,他们给了我这个:match_person_email_post_search: function(bundle){ if(bundle.response.status_code == 400){ return []; } // the rest of your processing done here } 我做了 (dropbox.com/s/2q3jzuag5s3znx7/…) 但我认为我的语法错误,因为它不起作用。感谢您对我迄今为止缺乏理解的耐心!
猜你喜欢
  • 1970-01-01
  • 2014-10-21
  • 1970-01-01
  • 2017-03-30
  • 2016-10-29
  • 1970-01-01
  • 2021-04-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多