如何使用 Google 应用程序脚本打开电子邮件中的文档并将其下载到 Google 云端硬盘文件夹?

问题描述 投票:0回答:1

上下文:我在 Linkedin 上为我的公司发布了一个职位,linkedin 向我发送了一封针对每位申请人的电子邮件。在电子邮件中,有一个“下载简历”按钮,其中包含下载简历的链接。电子邮件本身不是附件。

步骤是:

  1. 从 linkedin 查找用于发布职位的新电子邮件
  2. 下载简历
  3. 商店位于谷歌文件夹中
  4. 将其标记为已读

目前,我已经按照附件编写了脚本,但它似乎不起作用:

function downloadAndMoveResumeToDrive() {
  var searchQuery = 'is:unread from:"[email protected]" subject:"New application: Web Development Intern"'; 
  var threads = GmailApp.search(searchQuery);

  for (var i = 0; i < threads.length; i++) {
    var messages = threads[i].getMessages();
    for (var j = 0; j < messages.length; j++) {
      var body = messages[j].getBody();

      var match = body.match(/href="(https:\/\/www\.linkedin\.com\/e\/v2\?[^"]+)"[^>]*?>\s*Download resume\s*<\/a>/i);

      if (match && match[1]) {
        var downloadLink = match[1];
        var fetchedContent = UrlFetchApp.fetch(downloadLink);
        var headers = fetchedContent.getHeaders();
        
        if (headers['Content-Disposition'] && headers['Content-Disposition'].indexOf('attachment') !== -1) {
          var blob = fetchedContent.getBlob().setName("Resume_" + new Date().toISOString() + ".pdf");
          var folderId = "ID OF FOLDER";
          var folder = DriveApp.getFolderById(folderId);
          folder.createFile(blob);
        } else {
          // The content fetched is not an attachment, handle accordingly
        }
      }

      messages[j].markRead();
    }
  }
}

javascript google-apps-script gmail linkedin-api
1个回答
0
投票

该脚本不包含可帮助您调试脚本的日志消息语句,因此我建议您从该语句开始。 IE。之后

 var threads = GmailApp.search(searchQuery);

添加

console.info(`threads: ${threads.length}`);

上述内容将帮助您了解此处返回了多少线程,并验证您的搜索查询是否按预期工作。有关详细信息,请参阅故障排除

以上是一个选项。另一种方法是使用调试按钮从脚本编辑器运行脚本。在单击它之前,您可能需要设置一个断点,这样您就有时间查看调试面板以查看分配给每个变量的对象/值。

© www.soinside.com 2019 - 2024. All rights reserved.