您没有权限调用FormApp.openById

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

我有一个通过 FORMAPP.getbyurl/id 方法在应用程序脚本中使用的表单,但每次运行此代码时都会遇到错误

“发生错误:您无权调用 FormApp.openById。所需权限:https://www.googleapis.com/auth/forms ” 代码的工作原理是这样的:-首先它检查编辑的位置,然后检查复选框是否被勾选,最后它自动填写表单并提交,你们可以帮助我吗,这里是代码

function onEdit(e) {
  try {
    var range = e.range;
    var sheet = range.getSheet(); 
    var editedColumn = range.getColumn();
    var editedRow = range.getRow(); 
    
    if (sheet.getName() == "Sheet1" && editedColumn == 16) {
      var cell = range; 

      var isChecked = cell.getValue();

      if (isChecked === true) {
        var indentNumber = sheet.getRange(editedRow, 12).getValue();
        var formUrl = " https://docs.google.com/forms/d/e/1FAIpQLSfs8jmdWuGGyvSsqU_HAG9pfaD_pSAwWc5YGHkI5wojiH6tjw/viewform";
        
        var form = FormApp.openById("1WlxVWcJ1llXS4pSFtfwzrxEzJVdIicDFXxIROcvPV5U");
        
        var rowData = sheet.getRange(editedRow, 1, 1, 14).getValues()[0];
        
        var formItems = form.getItems();
        formItems[0].asTextItem().createResponse(rowData[0]); 
        formItems[1].asTextItem().createResponse(rowData[1]); 
        
        var formResponse = form.submit();
        
        SpreadsheetApp.getUi().alert('Form filled and submitted successfully.');
        
        cell.setValue(false);
      }
    }
  } catch (error) {
    Logger.log("Error: " + error.toString()); // Log error to Apps Script Execution log
    SpreadsheetApp.getUi().alert('Error occurred: ' + error.message); // Display error message to user
  }
}

我试图让表格自动填写并自动提交

forms google-sheets google-apps-script authorization google-forms
1个回答
0
投票

授权错误是因为您使用的是预留功能。 onEdit 函数无法访问需要授权的服务。 FormApp.openById() 需要授权。 更改函数名称并手动安装触发器。 您可以在这里阅读更多相关信息:https://developers.google.com/apps-script/guides/triggers

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