如何从GMAIL邮件的超链接中自动下载.csv文件并将其内容添加到Google电子表格
我收到一封带有超链接的电子邮件,单击该超链接可开始将csv文件下载到我的Gmail帐户。这不是一个实际的附件。当我收到这封电子邮件(有唯一的主题行)时,我需要一种方法来自动添加下载的.csv文件的内容 触发: 我的gmail帐户收到了一封带有特定主题行的电子邮件 行动1: 从电子邮件正文中的超链接下载.csv文件 行动2: 将.csv文件的内容添加到Google工作表文件中 我需要一个已经建立的服务,这样做或建议如何接近它 如果我能运行这个谷歌脚本,我应该能够找到一个可行的解决方案。问题是脚本一直给我错误如何从GMAIL邮件的超链接中自动下载.csv文件并将其内容添加到Google电子表格,csv,google-sheets,google-drive-api,gmail,Csv,Google Sheets,Google Drive Api,Gmail,我收到一封带有超链接的电子邮件,单击该超链接可开始将csv文件下载到我的Gmail帐户。这不是一个实际的附件。当我收到这封电子邮件(有唯一的主题行)时,我需要一种方法来自动添加下载的.csv文件的内容 触发: 我的gmail帐户收到了一封带有特定主题行的电子邮件 行动1: 从电子邮件正文中的超链接下载.csv文件 行动2: 将.csv文件的内容添加到Google工作表文件中 我需要一个已经建立的服务,这样做或建议如何接近它 如果我能运行这个谷歌脚本,我应该能够找到一个可行的解决方案。问题是脚本一
function downloadFile(fileURL,folder) {
var fileName = "";
var fileSize = 0;
var response = UrlFetchApp.fetch(fileURL, {muteHttpExceptions: true});
var rc = response.getResponseCode();
if (rc == 200) {
var fileBlob = response.getBlob()
var folder = DocsList.getFolder(folder);
if (folder != null) {
var file = folder.createFile(fileBlob);
fileName = file.getName();
fileSize = file.getSize();
}
}
var fileInfo = { "rc":rc, "fileName":fileName, "fileSize":fileSize };
return fileInfo;
}
这是我最近在工作中解决的问题,完全自动化从电子邮件到数据库的数据提取。我不打算为您编写解决方案,但我将为您提供您自己编写所需的信息和链接 注意:您的问题非常广泛,涵盖了大量不同的问题,每个问题都应该用自己的问题一次解决一个问题(其中许多问题已经有多个关于StackOverflow的答案)。这是一个与链接文档和两个代码片段一起遵循的过程,因此您可以自己完成并解决过程中的每个问题 拟议的进程:
UrlFetchAp
、Blob
数据类型和parseCsv
实用程序(必须先将其转义为逗号,因为它有缺陷)//从href中的HTML字符串检索URL。仅当字符串中只有一个链接时适用
函数GetHrefURLsFromString(string){
var href=string.match(/href=“([^”]*)/)[1];
如果(href){
返回href;
}否则{
抛出“找不到URL”
}
}
从链接中提取CSV:
//从提供的链接获取CSV,并对其进行解析。
函数GetCSVFromLink(链接){
var urlData=UrlFetchApp.fetch(链接);
如果(urlData.getBlob().getContentType()=='csv'){
var stringData=urlData.getContentText();
var escapedStringData=stringData.replace(/(?=[“])(?:“[^”\\]*(?:\\[\s][^”\]*)*“\”[^'\\]\r\n(?:\\[\s\s][^'\]\r\n)*')/g,“\r\n”);
var CSV=Utilities.parseCsv(escapedStringData);
返回CSV;
}
Logger.log('数据类型不是CSV')
返回null;
}
我尝试使用Zapier集成连接,但提供的解决方案还不够。有一些脚本尝试使用实际附件进行连接,但我正在努力解决这是一个超链接下载问题。我觉得这实际上应该更容易,但我可能错了。我也尝试了此处的说明,但运气不佳:@Pau为什么你不接受这个答案?这对你来说够了吗?