2

我正在尝试使用 Zapier CLI 对触发器进行原型设计,并且在 UI 中设置触发器时遇到了“Pull In Samples”部分的问题。

这会尝试提取要使用的实时数据样本,但是文档指出,如果没有返回任何结果,它将使用为触发器配置的样本数据。

在大多数情况下,将没有实时数据,因此理想情况下实际上更喜欢在第一个实例中使用示例数据,但是我的触发器似乎从未使用过该示例,并且我无法找到一个具体示例“没有结果”的回应。

我使用的 API 返回 XML,因此我将结果处理为 JSON,如果有数据,它可以正常工作。

如果到目前为止没有结果,我尝试返回'[]',但这只是挂起,如果我检查 zapier http 日志,它会循环 http 请求,直到我取消样本检查。

返回 '​​[{}]' 返回一个错误,我需要一个 'id' 字段。

我使用的定义是:

module.exports = {
key: 'getsmsinbound',
noun: 'GetSMSInbound',
display: {
    label: 'Get Inbound SMS',
    description: 'Check for inbound SMS'
},
operation: {
    inputFields: [
        { key: 'number', required: true, type: 'string', helpText: 'Enter the inbound number' },
        { key: 'keyword', required: false, type: 'string', helpText: 'Optional if you have configured a keyword and you wish to check for specific keyword messages.' },
    ],
    perform: getsmsinbound,
    sample: {
        id: 1,
        originator: '+447980123456',
        destination: '+447781484146',
        keyword: '',
        date: '2009-07-08',
        time: '10:38:55',
        body: 'hello world',
        network: 'Orange'
    }
}

};

我希望这在搜索网络和 Zapier 文档时很明显,我没有任何运气!

4

1 回答 1

2

示例数据必须从您的应用程序中提供,并且示例有效负载不专门用于此轮询。从文档

样本结果不会用于用户的 Zap 测试步骤。该步骤需要事件接收数据或从轮询 URL 返回数据。如果用户选择“跳过测试”,则将使用样本结果(如果提供)。

就个人而言,我从未见过“跳过测试”出现。不久前,我要求对此提供支持:

这是一个很好的问题!在使用 REST Hooks 时,这绝对是一种“先有鸡还是先有蛋”的情况——如果没有可用的示例,那么一切都会停滞不前。

当 Zap 编辑器尝试获取“样本结果”时,它将查看三个位置:

  1. 为当前用户调用轮询端点(在触发器设置的第 3 步中)。如果返回“nothing”,那么 Zap 编辑器将尝试下一步。
  2. Zap 历史上的“最新记录/数据”。因为这是一个全新的 Zap,所以不会有任何东西。
  3. 样本结果(在触发器设置的第 4 步中)。Zap 编辑器将告诉用户“没有可显示的内容”,并为用户提供“跳过测试并继续”的选项,这将使用您在此处提供的示例 JSON。

实际上,它只会一遍又一遍地重试请求,而不会为用户提供“跳过测试并继续”选项。我刚刚再次通过电子邮件询问从那时起是否有任何变化,但看起来现有的样本数据是必需的。

也许默认情况下在您的 API 中创建一条记录并将其隐藏以防止正常使用,然后将其发回?

或者即使 Zapier 说不发送回虚拟数据。不确定,但我不知道人们如何在尚未创建数据的情况下设置 zap(Zapier 说他们的应用程序没有多少有这个问题,但几乎我创建的每个触发器以及其他应用程序的用例否则应用程序会向我暗示)。

于 2018-04-19T16:59:29.027 回答