返回文件的 Zapier 触发器:z.dehydrateFile 调用的格式是啥?

Posted

技术标签:

【中文标题】返回文件的 Zapier 触发器:z.dehydrateFile 调用的格式是啥?【英文标题】:Zapier trigger that returns file: what is the format of the z.dehydrateFile call?返回文件的 Zapier 触发器:z.dehydrateFile 调用的格式是什么? 【发布时间】:2018-10-11 01:05:30 【问题描述】:

我正在编写一个返回文件的 Zapier 触发器。我知道我的触发器端点不返回文件的内容,而是返回一个指向它的指针。

所有示例文档都显示javascript example:

var Zap = 
  your_trigger_post_poll: function(bundle) 
    var records = z.JSON.parse(bundle.response.content);
    return _.map(records, function(record) 
      // if you just do url, we'll include any standard authentication headers
      record.file = z.dehydrateFile('https://yoursite.com/files/download/' + record.id);
      return record;
    );
  

我没有用 JavaScript 编写触发器。我想以正确的格式返回数据,但我找不到任何应该是什么的例子。

z.dehydrateFile 的输出是什么?能否提供一个 JSON 示例?

【问题讨论】:

当你说你不是在javacsript中编写触发器时,你在写什么?该文档描述了一个使用 javascript 脚本的网络构建器应用程序。我不相信还有其他选择。 无论哪种方式,您的触发器端点确实返回常规文件。 Zapier 完成了将普通文件变成脱水文件的繁重工作。您无需采取任何特殊措施。 我正在用 Django/python 编写它。我正在使用 web builder 来配置所有内容。我的后端只需要公开适当的 API。 我希望看到z.dehydrateFile('https://yoursite.com/files/download/' + record.id) 返回的 JSON 示例。 太棒了,很高兴你得到它! 【参考方案1】:

如果您想将触发器中的文件返回给 Zapier,您需要将 Zapier 可以访问该文件的 URL 作为名为 'file' 的记录返回。

如果您希望您的触发器返回可以在您的网络服务器上找到的“converted_csv_file.xlsx”,您的触发器将返回以下 JSON:


  "file": "https://goodgrids.com/converted_spreadsheets/converted_csv_file.xlsx"

请注意,网址很重要。 URL 的最后一部分将用作文件名。这在提供静态文件时是正常的。但是,如果您的服务动态生成文件,请确保您将文件名作为 URL 的一部分,即使用于访问该文件的实际密钥在您的 URL 中的其他位置。


  "file": "https://goodgrids.com/converted_spreadsheets/9234659832475982372345876/converted_csv_file.xlsx"

对Zapier的建议:请查看读取文件时返回的Content-Disposition标头,看是否包含filename

【讨论】:

以上是关于返回文件的 Zapier 触发器:z.dehydrateFile 调用的格式是啥?的主要内容,如果未能解决你的问题,请参考以下文章

如何从“Zapier 代码”(Javascript)读取文件输入

通过 Zapier 的 API POST

创建 Zapier 触发器

从 Django 代码调用 Zapier 触发器

是啥导致“Zapier 的代码”触发器独立运行?

当 Zapier 添加一行时,Google Apps 脚本 onEdit 触发器未触发 [重复]