Google脚本:根据用户ID /电子邮件提取Google文档

时间:2017-11-15 17:53:43

标签: javascript google-drive-api

早安堆栈!

我正在为Google脚本上的某些扩展功能寻找一些建议,以帮助我跟踪和处理缺席请求。过程如下:

  1. 用户提交表单回复
  2. 表单回复存储在电子表格中
  3. 拉取预先创建的Google文档,并将电子表格中的值植入文档中。
  4. 文档已转换为PDF
  5. 该PDF会自动通过电子邮件发送给我。
  6. 但是,一些工作政策已经改变,我现在需要这个表格才能拥有填写表格的人独有的签名。在过去,我们只是打印生成的PDF并让人签名。

    我知道我没有任何技术性可以添加任何类型的电子签名功能,也没有通过电子邮件将PDF发送给他们一个选项,因为它不会创建可填写的PDF(我的用户并不真正知道如何无论如何数字签名项目)

    所以我想的是为这个过程的15-20个用户创建一个独特的表单而不是getFileByID,让脚本检查Google用户帐户/电子邮件并提取为他们创建的文件并存储在我的驱动器而不是。

    以下是我当前的功能性脚本。我怎么能做这个工作?

    function onFormSubmit(e) {
    
    
    var Last_Name = e.values[2];
    var First_Name = e.values[3];
    var Middle_Initial = e.values[4];
    var Work_Location = e.values[5];
    var Job_Title = e.values[6];
    var Contact_Number = e.values[7];
    var Start = e.values[8];
    var End = e.values[9];
    var Time = e.values[10];
    var Reason = e.values[11];
    var D = new Date(); 
    
    var copyId = DriveApp
    .getFileById("1sdfjlsdf55asdfnk565enasdfnsnsd2")
    .makeCopy("AbsenceRequest" + Last_Name + Start).getId();
    
    var copyDoc = DocumentApp.openById(copyId)
    
    var copyBody = copyDoc.getActiveSection();
    
    copyBody.replaceText('keyLastName', Last_Name);
    copyBody.replaceText('keyFirstName', First_Name);
    copyBody.replaceText('keyMiddleInitial', Middle_Initial);
    copyBody.replaceText('keyWorkLocation', Work_Location);
    copyBody.replaceText('keyJobTitle', Job_Title);
    copyBody.replaceText('keyContactNumber',Contact_Number);
    copyBody.replaceText('keyStart', Start);
    copyBody.replaceText('keyEnd', End);
    copyBody.replaceText('keyTime', Time);
    copyBody.replaceText('keyDate', D);  
    
    copyDoc.saveAndClose();
    
    var pdf = DriveApp.getFileById(copyId).getAs("application/pdf");
    
    var Email = "email@email.org" + "," + "email@email.org";
    var Subject = "Absence Request" 
    var Body = "This is an absence request"
    MailApp.sendEmail(Email, Subject, Body, {attachments: pdf});
    
    DriveApp.getFileById(copyId).setTrashed(true);
    }
    

0 个答案:

没有答案