我需要让最终用户能够在没有 google 应用程序脚本的情况下 运行 一些功能,而不让他访问代码

I need to make the end user able to run some functions without google apps script without giving him access to the code

我有一些 google sheet 应该有一些普通用户应该能够 运行 的功能,但我不希望他们能够看到代码,所以我现在正在做的是:

  1. 使用引用包含代码的库的绑定脚本创建 sheet
  2. 一个包含脚本代码的库 运行 现在的问题是我必须让用户访问库,以便他们能够从 sheet 运行 中使用函数,这使得整个想法毫无用处,因为我不想让他们看到我的代码。 如果有人知道我如何隐藏我的代码,同时又允许用户访问代码中的 运行 函数,请帮忙,谢谢。

我相信你的目标如下。

  1. 来自你的后续标题

    I need to make the end user able to run some functions without google apps script without giving him access to the code

    • 您想使用户 运行 Google Apps 脚本既不授权范围也不向用户显示脚本。

在这种情况下,例如,作为解决方法,使用 Web 应用程序怎么样?我认为当使用 Web Apps 时,您的目标可能会实现。此解决方法的流程如下。

用法:

1。创建一个 Google Apps 脚本的新项目。

Web Apps 的示例脚本是 Google Apps 脚本。所以请创建一个 Google Apps Script 项目。

如果要直接创建,请访问https://script.new/。在这种情况下,如果您没有登录 Google,则会打开 log-in 屏幕。所以请登录Google。这样,Google Apps Script 的脚本编辑器就打开了。

2。示例脚本。

请将以下脚本复制并粘贴到创建的 Google Apps 脚本项目中并保存。此脚本用于 Web 应用程序。

function doGet(e) {
  const {value} = e.parameter;
  
  // do something: Please put the script you want to run.

  return ContentService.createTextOutput(`<result>Updated ${value}</result>`).setMimeType(ContentService.MimeType.XML); // Here, you can return the value.
}

这个脚本是一个示例脚本。即使你直接使用它,你也可以测试这个解决方法。

3。部署 Web 应用程序。

详细信息见the official document

  1. 在脚本编辑器上,在脚本编辑器的右上角,点击“点击部署”->“新建部署”。
  2. 请点击“Select类型”->“Web App”。
  3. 请在“部署配置”下的字段中输入有关 Web 应用程序的信息。
  4. 请select“我”“执行为”
    • 这就是此解决方法的重要性。
  5. 请 select “任何人” “谁有权访问”
    • 根据你的情况,我认为这个设置可能比较合适。
  6. 请点击“部署”按钮。
  7. 复制 Web App 的 URL。就像 https://script.google.com/macros/s/###/exec

4。正在测试。

为了测试此 Web Apps,请将您的 Web Apps URL、输入的值和公式如下所示。

本次测试,样本公式为=IMPORTXML(CONCATENATE(A1,"?value=",A2),"/result").

通过此流程,用户可以 运行 您的脚本,而无需同时授权范围和显示您的脚本。在此解决方法中,该值作为 XML 数据返回。这样,网络应用程序可以与 IMPORTXML.

一起使用

注:

  • 当您修改 Google Apps 脚本时,请将部署修改为新版本。这样,修改后的脚本就会反映在 Web Apps 中。请注意这一点。
  • 您可以在“Redeploying Web Apps without Changing URL of Web Apps for new IDE”的报告中看到详细信息。
  • 我建议的脚本是一个简单的脚本。所以请根据自己的实际情况修改。

参考文献: