使用Javascript通过电子邮件发送Google表单数据

时间:2014-04-04 02:00:12

标签: javascript google-sheets google-drive-api

我尝试设置谷歌电子表格,以便在某些值更改为“是”时发送电子邮件。到目前为止,除了变量任务和程序是"未定义之外,我已经在它工作的地方得到了它。"

其次,如果没有更改为是,我只希望它发送电子邮件。所以说E2已经是"是"但E3不是。有人进去并将E3更改为是...我只想通过电子邮件发送第3栏中的信息而不是2。

最后,我如何检查E列中的所有内容以获得"是:...所以E2到E50?现在,它只检查E4 ..我想设置它来检查整个列。

我是一个使用javascript的新手并且似乎被卡住了。感谢。

  function readCell() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName("Form Responses");  
    var value = sheet.getRange("G4").getValue();
    var task = sheet.getRange("E4").getValue();
    var program = sheet.getRange("C4").getValue();
    if(value="Yes") sendEmail(value);
    if(value="Yes") sendEmail(task);
    if(value="Yes") sendEmail(program);
    };


    function sendEmail(value, task, program) {
    var email = "test@gmail.com";
    var subject = "Jacob has completed a task.";
    var body = "This is an automated generated email, Jacob Workman has completed  for " + task + "for" + program;

    var oauthConfig = UrlFetchApp.addOAuthService("google");
    oauthConfig.setAccessTokenUrl("https://www.google.com/accounts/OAuthGetAccessToken");
    oauthConfig.setRequestTokenUrl("https://www.google.com/accounts/OAuthGetRequestToken?scope=https://spreadsheets.google.com/feeds/");
    oauthConfig.setAuthorizationUrl("https://www.google.com/accounts/OAuthAuthorizeToken");
    oauthConfig.setConsumerKey("anonymous");
    oauthConfig.setConsumerSecret("anonymous");
    MailApp.sendEmail(email,subject,body); 

    };

由于

2 个答案:

答案 0 :(得分:1)

您的sendEmail()函数有3个参数,但是当您使用它时,您只传递一个值作为value变量。尝试:

if(value="Yes") {
    sendEmail(value, task, program);
}

分别代替每一行

答案 1 :(得分:1)

编辑正如Akum指出的那样,你也有错误的参数。

你不小心做了一个你想要进行比较的作业。

if(value === "Yes") sendEmail(value, task, program);

虽然可以更好地写成:

if(value === "Yes") {
  sendEmail(value, task, program);
}

顺便说一句:有一个名为JSHint的好工具可以帮助您找到常见问题,例如====