Google Apps 脚本错误:“您无权访问所请求的文档”

2024-04-09

我正在尝试创建一个脚本,在提交另一个电子表格时,会更新日期和其他信息,并将该工作表的 pdf 版本发送给另一名员工,然后由他批准。虽然代码为我运行,但其他工作人员无法使用该脚本,因为尽管他们拥有所有文档的编辑访问权限,但他们仍然收到“您无权访问所请求的文档”的消息。

关于为什么会发生这种情况的任何想法。我希望员工能够运行的代码是:

function sendToResponse() {
  
  var subject = sheet.getRange(3, 2).getValue();
  var rowOfTargetSubjectInMasterSheet = rowOfTarget(subject);
  var myLastYearGroupCell = countCellForTargetSheet(sheet, 12, 3);
  var myLastPeriodLengthCell = countCellForTargetSheet(sheet, 12 + myLastYearGroupCell + 5, 3);

  Logger.log(myLastYearGroupCell);
  Logger.log(myLastPeriodLengthCell);
    
  var stuGroup = sheet.getRange(12, 3, myLastYearGroupCell).getValues();
  targetSheet.getRange(rowOfTargetSubjectInMasterSheet + myLastYearGroupCell + 2, 5, myLastYearGroupCell).setValues(stuGroup);
     
  var lengthTeaching = sheet.getRange(17 + myLastYearGroupCell, 3, myLastPeriodLengthCell).getValues();
  targetSheet.getRange(rowOfTargetSubjectInMasterSheet + myLastPeriodLengthCell + 2, 7, myLastPeriodLengthCell).setValues(lengthTeaching);
  
  var lengthStaffing = countCellFor(teacherRow);
    
  var staffing = sheet.getRange(teacherRow + 1, 1, lengthStaffing, 3).getValues();
  targetSheet.getRange(rowOfTargetSubjectInMasterSheet, 8, lengthStaffing, 3).setValues(staffing);
  
  var ptDays = sheet.getRange(teacherRow + 1, 5, lengthStaffing, 1).getValues();
  targetSheet.getRange(rowOfTargetSubjectInMasterSheet, 12, lengthStaffing, 1).setValues(ptDays);
  
  var lengthClass = countCellFor(classSheetRow);
  
  var classes = sheet.getRange(classSheetRow + 1, 1, lengthClass, 3).getValues();
  targetSheet.getRange(rowOfTargetSubjectInMasterSheet, 13, lengthClass, 3).setValues(classes);
  
  var ctlName = sheet.getRange(4, 2).getValue();
  var ctlEmail = sheet.getRange(5, 2).getValue();
  var sltName = sheet.getRange(6, 2).getValue();
  var sltEmail = sheet.getRange(7, 2).getValue();
  var emailDate = targetSheet.getRange(rowOfTargetSubjectInMasterSheet, 16);
  var sltResponse = targetSheet.getRange(rowOfTargetSubjectInMasterSheet, 17).getValue();
  var cell = targetSheet.getRange(rowOfTargetSubjectInMasterSheet, 1);
  var workingRow = cell.getRow();
  
  if (sltResponse == '') {
    
    var approve = url + "?approval=Approved" + "&reply=" + ctlEmail + "&r=" + workingRow + "&sltName=" + sltName;
        
    var email = HtmlService.createTemplateFromFile('CTLRequestResponseSLTEmail');
    email.sltName = sltName;
    email.subject = subject;
    email.CTL = ctlName;
    email.approve = approve;
        
    var response = email.evaluate().getContent();
        
    MailApp.sendEmail({
         to: sltEmail,
         subject: 'Timetable 2020-2021: CTL Request for ' + subject,
         htmlBody: response,
         attachments: [SpreadsheetApp.getActiveSpreadsheet()]
       });
  
    var d = new Date();
    emailDate.setValue(d);
  };
}

function doGet(e) {
  
  // Update Spreadsheet
  var answer = e.parameter.approval;
  var workingRow = e.parameter.r;
  var d = new Date()
   
  targetSheet.getRange(workingRow, 17).setValue(answer);
  targetSheet.getRange(workingRow, 16).setValue(d);
  
  //Email
  
  var ctlEmail = e.parameter.reply;
  var sltName = e.parameter.sltName;
  
  GmailApp.sendEmail(ctlEmail, "CTL Request 2020-2021", "Thank you for submitting your CTL Request for 2020-2021.  The form has been sent to your SLT Line Manager for approval.");
  
  var app = HtmlService.createHtmlOutput(sltName + " thank you for your response.");
  
  return app
  
}

我已部署为 Web 应用程序,并尝试以我自己和访问 Web 应用程序的用户身份执行应用程序,但都不起作用。

Thanks

Fazila


如果您自己部署 WebApp:

  • 确保设置Who has access to the app: to Anyone or Anyone, even anonymous确保任何用户都可以访问 WebApp
  • 请注意所有请求(例如GmailApp.sendEmail())将代表您执行 - 即以您的名义执行

如果您将 WebApp 部署为User accessing the web app:

  • 确保为代码运行的电子表格设置共享权限,以便所有用户/您想要运行 Web 应用程序的用户都具有编辑权限
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Apps 脚本错误:“您无权访问所请求的文档” 的相关文章

  • 使用 Google 电子表格中的脚本从手机获取我的当前位置

    有没有办法使用 Google Apps 脚本从手机的 GPS 数据中获取我的当前位置 纬度和经度 最好是十进制形式 另外 是否可以打开和关闭 GPS 或者至少检测它是否打开或关闭 这是我尝试做的 我带着电动助力车去一些地方 在每个地方我都会
  • 如何从电子表格加载特定工作表

    我有一个包含很多工作表的电子表格 我需要加载其中一张工作表 我该怎么做 Here is a photo of the sheets in my Spreadsheet 这是我的想法如何做到这一点 var sheet SpreadsheetA
  • Google Sheets API v4:batchGet 不起作用

    无法使用 batchGet 让 Google Sheets API v4 返回多个范围值 它给出以下错误 尽管文档说它需要 valueRanges 但所有范围和电子表格 ID 都是正确的 额外的参数块必须是 javascript 对象文字
  • 将 showModalDialog() 的内容添加到剪贴板 Google 脚本

    当我单击按钮时 我已将格式化数据添加到模态对话框中 我想要的内容showModalDialog 当我单击按钮时也会自动添加到剪贴板 模态是用下面的代码生成的 并且temp是我想要添加到剪贴板的输出 Output to Html var ht
  • Google应用程序脚本忽略数据验证错误

    我有一些具有数据验证规则的工作表可用作下拉列表 当尝试将其他 未经验证的 数据插入这些单元格时 我的代码现在会产生错误 我正在寻找一种方法来忽略数据验证规则并插入数据而不更改已设置的数据验证规则 我只想忽略应用程序脚本错误 您在单元格 U4
  • Google Apps 脚本无法从托管的 GAS 转换为特定的云项目

    我有一个 GAS 管理的项目 我想将其转换为特定的谷歌标准云项目 我有身份证 我将其输入到资源 云托管项目中 然后得到 项目不存在 或者您需要对其进行编辑访问 它确实存在 并且我拥有权限 因为我是所有者 该错误有些误导性 我花了一段时间才弄
  • 使用文件名将文件一个文件夹复制到 Google 云端硬盘中的另一个文件夹

    我的谷歌云端硬盘帐户中有两个文件夹 文件夹 1 和 文件夹 2 文件夹1 内有多个文件 假设有一个文件名Test txt我想复制Test txt使用 Driveapp 将文件保存到 文件夹 2 我找到了代码 但它仅适用于 文件唯一 ID 我
  • “在 Chrome 网上应用店中注册”未显示在 Google 脚本编辑器中

    我正在尝试将脚本 在脚本库中称为 Paypal 商店 作为 Chrome 网上应用店中的网络应用程序发布 但 Google 脚本的 发布 菜单中未显示 在 Chrome 网上应用店中注册 项目编辑器 此菜单中唯一的项目是 发布到库 和 部署
  • 将 Google 工作表图表导出为图像

    请您帮助了解如何使用谷歌脚本将图表导出到图像 我写了这段代码 但它不起作用 我担心 APIgetAs已弃用 function TestEmailCharts var sheet SpreadsheetApp getActiveSheet v
  • 如何在链接到表单的工作表中执行 Google 工作表脚本之前等待 Google 表单脚本完成执行

    我有两个脚本 一个链接到 Google 表单 另一个链接到 Google 表格 我需要确保 Google 表单脚本在执行链接到 Google 表单的工作表的 Google 工作表脚本主体之前完成执行 如何才能做到这一点 需要等待 Googl
  • 是否可以将 .gs 文件上传到复制的 Google 文档的应用程序脚本项目?

    我复制了一个电子表格供多人使用 并附加了脚本 我的问题是如何修改项目中的脚本 而不必将每个更改复制并粘贴到 gs项目中的文件 This is the base document from which the other versions w
  • 在网页中显示 Google 工作表单元格的内容

    我有一个包含 html 代码的单元格的 google 工作表 我想知道在网页中显示此 html 的最佳方式 我尝试过谷歌电子表格 API 和谷歌可视化 API 以下是如何使用 Javascript 图表 API 显示单个单元格中的信息 也许
  • Google Apps 脚本:从云端硬盘下载文件(同一用户)

    我正在尝试编写一个 Google Apps 脚本来下载特定云端硬盘文件夹中的所有文件 可能是 csv 文件 我找到了 getDownloadUrl 方法 但我不知道该做什么do用它 我目前正在尝试以下代码 其中files是文件夹中的文件列表
  • 如何使用谷歌应用程序脚本开发渐进式网络应用程序

    我使用 google app 脚本开发了一些应用程序 并将它们部署为 Web 应用程序 它们都工作正常 然后我决定将它们转换为 PWA 原因是让它们可以安装在智能手机用户的主屏幕上 能够使用推送通知 缓存等 简而言之 PWA 提供的所有优势
  • 如何检查 Gmail 标签是否有嵌套子标签?

    使用Google Apps脚本 是否有一个功能可以检查Gmail标签是否有嵌套子标签 如果标签有一个或多个子标签 我想将它们从代码序列中排除 没有直接的方法可以从 父 标签获取标签 但是使用简单的方法来获取标签非常简单getUserLabe
  • 将活动工作表作为电子邮件附件从 Google 工作表发送

    我有一个谷歌表单 可以捕获电子表格中的响应 目前 每次做出新响应时 它都会创建一个新工作表 我现在尝试将 邮寄活动工作表脚本 添加到创建新工作表的现有脚本中 但是我收到错误 请求失败https docs google com spreads
  • 图像未显示在从 HTML 创建的 PDF 上

    我想动态创建 PDF 这意味着我将从 Google Drive 获取文件 然后将它们放入 HTML 代码中 并尝试从中创建 PDF 一切工作正常 除了图像没有显示 我现在正在做的是 从 HTML 字符串创建 HtmlOutput 获取该 H
  • 通过 Apps 脚本强制刷新公式

    有时 更改单元格的值时 电子表格中的公式不会自动刷新 并且单元格上会出现注释以选择该单元格 然后按 CTRL SHIFT E 强制重新加载公式 我想从 Apps 脚本调用此重新加载函数 有没有办法用 Apps 脚本来做到这一点 我尝试了 S
  • Google Apps 脚本:比较日期

    我在比较 Google Apps 脚本中的日期时遇到了一个奇怪的问题 为此 我的工作表在 cell getValue 中有一个日期 所以 e range setNote cell getValue startDate 行中 注释显示两个看起
  • 当 Google 任务标记为“已完成”时如何触发 Google 脚本

    Google Apps 脚本允许由各种事件触发脚本 看here https developers google com apps script guides triggers 当用户将任务标记为已完成 在 Google 任务中 时 我想更新

随机推荐

  • 如何在 ASP.NET C# 中发送电子邮件

    我对这个很陌生ASP NET http en wikipedia org wiki ASP NETC 区域 我计划通过 ASP NET C 发送邮件 这是SMTP http en wikipedia org wiki Simple Mail
  • 使用 Google+ API 获取用户凭据

    我正在尝试包括谷歌登录在我的android应用程序中使用谷歌 API 我可以从用户那里获取帐户详细信息 但登录后我会得到null when 请求用户名使用调用 Plus PeopleApi getCurrentPerson mGoogleA
  • 错误QApplication:没有这样的文件或目录

    我已经安装了具有 Qt 的 C SDK 但是当我尝试编译链接 QApplication 的代码时 它给了我错误 Error QApplication no such file or directory 我如何链接这些库 我搜索目录 有一个名
  • javascript 文件缓存的依据是什么?

    javascript 文件在什么基础上被缓存 假设我从一个网站加载一个名为 m script js 的文件 而在另一个网站上我使用相同的名称 m script js 但内容不同 浏览器会获取新的名称 还是只是查看名称并从缓存中加载它 两个
  • 检查位掩码的特定位

    我正在与Bitmasks in python 据我所知 这些是整数数组 当它们解压缩为二进制格式时 它们会告诉您数组中给定元素的 32 位中的哪一个被设置 1 我想知道检查数组的任何元素是否设置了 4 个特定位的最快方法 我不关心其余的 我
  • 更改所选单选按钮标签的样式

    我试图在表单中选择单选按钮标签时更改其边框颜色 我发现这个问题几乎正是我想要做的 CSS 如何设置选定单选按钮标签的样式 https stackoverflow com questions 4641752 css how to style
  • 程序太大

    我收到此错误消息 Procedure too large 在 VBA 中 这个错误的原因和解决办法是什么 您可能有一个或多个巨大的过程 函数 我认为 VBA 每个过程的限制为 64k 或其他值 您可以通过将该过程拆分为多个过程来修复此问题
  • 从 pandas.DataFrame 的每一列中获取最高值

    这是我的pandas DataFrame import pandas as pd data pd DataFrame first 40 32 56 12 89 second 13 45 76 19 45 third 98 56 87 12
  • Rails 加入多态关联

    我有一个名为的多态关联Notifiable在一个名为Notifiaction module Notifiable def self included base base instance eval do has many notificat
  • 泛型编程是多态性的一个例子吗?

    我正在做一项家庭作业 一个项目 其中一个标准是我必须以一种显着提高代码整体质量或功能的方式使用多态性 我做了一个哈希表 如下所示 public class HashTable
  • 垂直居中,右对齐,多行文本在绝对定位的 div 中,具有 Flexbox 父级

    我有一些绝对定位的 div 有两行文本 一个 h2 和一个 p 我试图让文本 在绝对定位的 div 内垂直居中 右对齐 并且 h2 和 p 标签之间有一个换行符 绝对定位的 div 包含在父级中 所以我想我可以使用 flexbox 来解决这
  • “由于在生成器中使用而发生移动”错误是什么意思?

    我遇到了关于生成器的问题 use tokio runtime Runtime use tokio task JoinHandle use std sync Arc pub fn run f Box
  • 在android中以编程方式设置设备时间[重复]

    这个问题在这里已经有答案了 我需要动态设置设备时间 如果可能 请指导我 据我尝试 MainActivity java Calendar c Calendar getInstance c set 2010 1 1 12 00 00 清单文件
  • PHP smtp.office365.com 用于电子邮件

    是否可以将PHP应用程序邮件与Office365集成 我已经尝试过但发现了这个错误 authentication failure SMTP SMTP server does not support authentication code 2
  • WPF - 内容更改之前的数据绑定触发

    如何创建在绑定更改值之前触发的触发器 如何对数据模板执行此操作
  • Javascript 模态弹出窗口

    我正在尝试创建一个简单的模式弹出窗口 我已经完成了 CSS Javascript 也基本完成了 我现在点击页面按钮上的按钮 就会出现弹出窗口 但它出现在页面顶部 如果您一直滚动到页面顶部 它就会完全显示出来 然而 我希望模式弹出框根据当前滚
  • Akka Stream 中的 Via/ViaMat/to/toMat

    有人能清楚地解释一下这4种方法有什么区别吗 什么时候使用每一种更合适 一般来说 这组方法的名称是什么 还有更多方法可以完成相同的工作吗 scaladoc 的链接也可能有帮助 D 所有这些方法都是将两个流合并为一个流所必需的 例如 您可以创建
  • 时间:2019-03-17 标签:c++boostlambdalibraries

    使用 boost lambda 库开始编程的最佳方法可能是什么 在 C 语言和库的范围内 我建议首先习惯使用 STL 算法函数模板进行编程 因为 boost lambda 最常见的用途之一是用内联表达式替换函子类 库文档本身为您提供了一个预
  • 如何忽略Sequelize中的SequelizeUniqueConstraintError?

    使用来自的示例文档 http docs sequelizejs com manual tutorial associations html creating elements of a hasmany or belongstomany as
  • Google Apps 脚本错误:“您无权访问所请求的文档”

    我正在尝试创建一个脚本 在提交另一个电子表格时 会更新日期和其他信息 并将该工作表的 pdf 版本发送给另一名员工 然后由他批准 虽然代码为我运行 但其他工作人员无法使用该脚本 因为尽管他们拥有所有文档的编辑访问权限 但他们仍然收到 您无权