尝试从脚本编辑器“安装”触发器将返回“您无权调用newTrigger”

时间:2018-09-03 13:17:52

标签: google-apps-script google-sheets google-form

因此,我一直试图在onFormSubmit函数内通过MailApp发送电子邮件。我最近了解到,简单触发器没有扩展访问邮件等服务的权限,但具有可安装的访问权限。

因此,我去网上搜索如何制作可安装的触发器,我丝毫不了解他们的google文档,也没有在他们的任何地方找到任何有用的视频/论坛来简化他们的工作了解

因此,我转向你,你是一群天才。

通过脚本编辑器,我手动调用

function CreateFormSubmitTrigger() {

var ss = SpreadsheetApp.getActive();
ScriptApp.newTrigger('formDone')
.forSpreadsheet(ss)
.onFormSubmit()
.create()

}

每次运行它时,它都会返回“您无权调用newTrigger(第7行,文件“代码”)”

我要为其创建触发器的功能如下,当我在当前项目触发器>电子表格> onFormSubmit上具有此功能时。也不起作用。

function formDone(e) {

Utilities.sleep(3000)

var range = e.range;
var ss = range.getSheet();
var row = range.getRowIndex();

var tactics = 
Sheets.Spreadsheets.Values.get('id', "A:AQ"+row);

var headers = 
Sheets.Spreadsheets.Values.get('id', 'A1:U1');
var templateID = "id"

var i = 0; i < tactics.values.length;

var Timestamp = tactics.values[i][0];
var IDCFREF = tactics.values[i][2];
var raisedby = tactics.values[i][4];
var AccMan = tactics.values[i][6];
var Contrib = tactics.values[i][7];
var Contract = tactics.values[i][8];
var CompName = tactics.values[i][9];
var ValidFrom = tactics.values[i][10];
var ValidTo = tactics.values[i][11];
var Freq = tactics.values[i][12];
var PDetailFreq = tactics.values[i][13];
var BillType = tactics.values[i][14];
var TypeOfRebate = tactics.values[i][15];
var RebateDetails = tactics.values[i][16];
var RTarget = tactics.values[i][17];
var GiveDeets = tactics.values[i][19];
var WhyGiveRebate = tactics.values[i][20];
var documentID = DriveApp.getFileById(templateID).makeCopy().getId();

console.log({message: IDCFREF})

if (DriveApp.getFilesByName("Rebate " + IDCFREF + " Request").hasNext()){
    DriveApp.getFilesByName("Rebate " + IDCFREF + " Request").next().setTrashed(true)
    } else {
    }
DriveApp.getFileById(documentID).setName('Rebate ' + IDCFREF + ' Request');

var body1 = DocumentApp.openById(documentID).getBody();
var header = DocumentApp.openById(documentID).getHeader();

header.replaceText('##IDCF##', IDCFREF)
body1.replaceText('##REF##', IDCFREF)
body1.replaceText('##RAISED##', raisedby)
body1.replaceText('##ACCMAN##', AccMan)
body1.replaceText('##CONTRIB##', Contrib)
body1.replaceText('##SIGNED##', Contract)
body1.replaceText('##NAME##', CompName)
body1.replaceText('##FROM##', ValidFrom)
body1.replaceText('##TO##', ValidTo)
body1.replaceText('##FREQ##', Freq)
body1.replaceText('##BESPOKE##', PDetailFreq)
body1.replaceText('##BILL##', BillType)
body1.replaceText('##TYPE##', TypeOfRebate)
body1.replaceText('##DEETS##', RebateDetails)
body1.replaceText('##TARGET##', RTarget)
body1.replaceText('##FULL##', GiveDeets)
body1.replaceText('##ELAB##', WhyGiveRebate)

Utilities.sleep(5000)

var filemail = DriveApp.getFileById(documentID)

if(DocumentApp.openById(documentID).getBody().findText("#")) {
  MailApp.sendEmail({
  to: "email",
  subject: "Rebate Request " + IDCFREF + " - Pending",
  body: "",

  attachments: [filemail]
  })
    } else {

  MailApp.sendEmail({
  to: "email",
  subject: "Rebate Request " + IDCFREF + " - Complete",
  body: "rebates",

  attachments: [filemail]
  });
 }
}

对情况的任何了解都将得到无与伦比的赞赏。

欢呼声

0 个答案:

没有答案