如何让其他人安装我的 Google Apps 脚本?

How can I let others install my Google Apps Script?

提问人:Evert Heylen 提问时间:6/28/2014 最后编辑:CommunityEvert Heylen 更新时间:6/29/2014 访问量:1412

问:

我在 Google Apps Script 中制作了一个简单的脚本。该脚本基于电子表格构建表单,脚本本身是电子表格的一部分。它添加一个菜单项。人们想使用它。他们是非技术人员,所以我想使我的脚本的安装尽可能简单。通过“安装”,我的意思是将我的脚本“导入”到他们的电子表格中,并自动设置所需的触发器,以便菜单项变得可见。任何人都可以安装它。 我一直在考虑以下解决方案:

  • 作为附加组件发布:我的脚本不符合条件,即便如此,我也等不及 Google 的批准。
  • 复制粘贴。我不喜欢这个,它太复杂了。

我看过这个问题:https://stackoverflow.com/questions/5334751/how-do-i-share-a-script-i-wrote-with-my-co-workers-on-the-same-google-apps-accou,但是在我的情况下,想要安装它的人不在同一个域上。这个问题也是 3 年前的事了。

编辑:事实证明,似乎没有解决方案。我在这里提交了功能请求:https://code.google.com/p/google-apps-script-issues/issues/detail?id=4122&thanks=4122&ts=1403949074

谷歌应用脚本

评论

0赞 Andrew Roberts 6/29/2014
关于附加组件路线,上次我听说附加组件无论如何都不支持以编程方式添加触发器。通过复制/粘贴,我猜您的意思是复制脚本本身。您还可以提供指向电子表格的链接以用作主副本,他们可以复制该链接。

答:

0赞 DominicDodge 6/28/2014 #1

如果您的 Google 帐号管理员允许您,您可以直接与拥有 Google 帐号(Gmail 或 Google Apps)的其他用户共享脚本/电子表格,也可以将其公开(通过链接共享或在线发布)。https://support.google.com/drive/answer/2494822?hl=en

请记住,如果使用脚本属性来存储值,则每次有人使用共享脚本时,它都会覆盖这些值。在共享上下文中,最好改用用户属性。这样,每个用户都可以存储自己的值。https://developers.google.com/apps-script/guides/properties

评论

0赞 DominicDodge 6/28/2014
此外,如果脚本联机可用(Web 应用),请确保将其设置为以用户身份运行。developers.google.com/apps-script/execution_web_apps
0赞 Evert Heylen 6/28/2014
我认为这不能回答我的问题。我已经编辑了我的问题以澄清。
0赞 Serge insas 6/28/2014 #2

无法在现有电子表格中导入脚本,“正常”工作流程在某种程度上是相反的过程,也就是说,从已经包含脚本的现有模板创建一个工作表,然后开始使用该副本。

从你的描述中,我不确定这种方法是否可用,但恐怕没有其他方法,如果你希望使用它的人根本不应该进入脚本编辑器。

将编写几个函数,这些函数应在安装时运行,并将创建触发器(如果需要)并触发授权过程。

我前段时间做了这样一个需要授权的SS,我添加了一个“安装”菜单,使其使用非常简单(例如,在一个友好的托管网站上)。

我知道这可能不是你所期望的答案,但无论如何,它肯定太长了,无法放入评论中。

评论

0赞 Evert Heylen 6/28/2014
这是有问题的。我的脚本是由表单自动生成的电子表格的一部分。想要使用我的脚本的人的工作流程是首先创建一个表单,然后自动创建电子表格。这样就不可能将我的脚本放在模板中。此外,我制作了这个脚本,以解决收集数据后引发的特定问题,因此电子表格已经存在。
0赞 Serge insas 6/28/2014
正如我所说:“我知道这可能不是你所期望的答案”,你不能使用带有脚本的模板创建工作表吗?
0赞 Evert Heylen 6/28/2014
我知道这个问题可能会在一段时间内悬而未决,直到谷歌修复它。但是不,在我的情况下这是不可能的。我的脚本是电子表格的一部分,电子表格是由表单自动创建的。除非您可以在创建电子表格时告诉表单使用某个模板,否则表单永远不会在其创建的电子表格中包含任何脚本。在此工作流中,始终首先创建表单。
0赞 Serge insas 6/28/2014
应该可以告诉表单使用从模板创建的电子表格......我没有尝试,但我很确定你可以。您能否在伪代码(或真实代码)中提供工作流程的示意图结构?所以我可以提供一个更具体的答案......感谢
0赞 Evert Heylen 6/28/2014
你是对的,这是可能的。虽然这并不能解决新创建的电子表格的问题,但它确实部分解决了问题。不过,这是一项相当大的工作。方案:i.imgur.com/YNrqRP0.png