当前位置: 首页 > 知识库问答 >
问题:

我的Google应用程序脚本如何由其他人运行工作表共享?

景震博
2023-03-14

我有一个谷歌应用程序脚本,为我工作的罚款。其他与之共享工作表的人试图使用它,他们会得到消息:

您没有执行该操作的权限。请请求此项目的所有者授予您访问权限。

该脚本用于使用新的数据行更新现有工作表。它使用添加到UI的菜单项触发,并执行以下操作:

  • 在GDrive文件夹中找到. xlsx文件(该文件由Web服务导出,并由我们手动放入GDrive文件夹,我们无法控制文件的内容或其格式)
  • 使用UrlFetchApp将文件从. xlsx转换为. gshep

我知道代码没有问题,因为它对我来说很好,所以它一定是权限问题,但我不知道怎么做。工作表与他们共享,文件所在的GDrive文件夹与他们共享。当我第一次自己运行脚本时,我必须授予脚本访问GDrive文件夹的权限,这显然已经完成了。

我是我们团队的开发人员,不是数据的用户,而是自动取款机,每次需要更新数据时,我都必须运行脚本来更新用户的数据,而不是他们自己做,这很烦人。

非常感谢您能帮助我们找出问题所在。

编辑:再次阅读这篇文章时,我突然想到,当文件被转换时,首先它保存到GDrive根目录,这就是为什么我必须改变文件夹。作为根文件,它不与此文件的用户共享。这可能是原因吗?如果是这样,我该如何绕过这个?我可以在转换时指定结果文件应保存到哪个文件夹吗?

共有3个答案

宫高义
2023-03-14

在尝试了作为网络应用程序的脚本后,我得到了“doget”。“做得到”是什么意思?

尉迟子民
2023-03-14
匿名用户

根据我的经验,我创建了一个电子表格,每次打开该电子表格时都会检索用户的G套件许可证信息。我所做的是,我创建了一个超级管理员脚本,但当电子表格被共享时,其他用户也有同样的问题,直到我去发布

这对我有用,我希望对你有用。此更新后,在电子表格上具有编辑权限的所有用户都能够在每次打开电子表格时代表超级管理员检索信息。只需确保以的身份执行应用程序,而不是以将使用脚本或电子表格的用户的身份执行应用程序。

通常其他用户无法运行需要管理员权限的脚本,但这解决了我的问题。请让我知道,如果这为您工作!

问候。

汲昊空
2023-03-14

要解决这个问题,您需要将脚本部署为Web应用程序(这个想法来自@MarioR回答,但设置不同):

  • 使用所有者帐户打开工作表,然后使用脚本编辑器

用户首次尝试使用脚本时,必须允许使用脚本(如果他们获得此应用未经验证,他们应单击底部的高级,然后转到

如果所有者将工作表共享给新用户,则在将脚本部署为web应用程序后,新用户可能需要等待15分钟左右才能授权脚本(同时该用户将继续收到红色警告)。

只有所有者可以部署为一个Web应用程序,其他用户谁尝试做它不会得到一个消息错误,只是一个弹出获取数据仍然永远卡住!(要更改所有者:打开具有所有者帐户的工作表,单击共享

 类似资料:
  • 我使用SpreadSheet中的脚本在活动行下面添加行,并从活动行复制内容。在PC上,我可以通过图像/绘图触发脚本,它工作得很好。但是我不知道如何让它在iOS应用程序中工作,在应用程序中,图像触发不起作用,从一个应用程序复制内容到另一个应用程序是噩梦。我尝试了onEdit和isChecked为每一行,但它会给我新的行在每个编辑。你能帮忙吗? https://docs.google.com/spre

  • 问题内容: 我有一个看起来像这样的docker文件: 我需要在某些时候运行flask run来查看我在flask中创建的端点(在文件夹app下)。我该怎么做才能将此添加到此dockerfile? 我认为我还必须让flask运行其他应用程序,因为flask公开了其他应用程序正在收集的数据。我如何让flask调用其他应用程序并使其在后台运行? 问题答案: 我想你不想要那个入口点(也许你确实想要它,但是

  • 有人能帮我把脚本布局转换成实际的功能代码吗?我有一般的编码知识,但我不知道正确的语法。 基本上,我需要的是一个脚本,当提交表单条目时,它会在所有工作表/选项卡之间循环。表单包含提交表单的人的姓名(字符串)、开始日期、结束日期,最后是注释字段(字符串)。 我需要脚本来遍历每个工作表的第5行,并查找在第一个表单字段中输入的字符串(提交表单的人的姓名)。如果它找到了该名称,它应该将与该名称对应的列保存到

  • 我有一个GoogleApps电子表格,其中一列包含日期和时间。这张纸是由几张纸合并而成的。在某些行上,该值是一个日期(即typeof sheet.getRange(i,2).getValue()==“object”,带有日期的方法)。其他时间,此单元格是一个数字(即typeof sheet.getRange(i,2).getValue()=“number”),但单元格格式将单元格显示为一个日期。

  • 我正在为谷歌表发送数据到服务器的脚本。目标Google Sheets文档有几个工作表。每个工作表必须有自己的菜单。所以我已经搜索了当活动表更改时触发的任何触发器,但我不能。 如何获取工作表切换事件? 谢谢你:) 使现代化我有这个功能: 但我想用函数替换onOpen,该函数将由激活工作表时触发的某个事件调用。 更新2. 我根据@Cooper的回答应用更改。现在,onOpen仍然可以正常工作,但是on