4

我创建了一个 Google Apps 脚本项目,该项目发布为任何人都可以看到的 WebApp,并以访问用户身份运行。

此 WebApp 包含一个 Library 项目,该项目具有以下访问方法ScriptDb

function getDb() {
  return ScriptDb.getMyDb();
}

function save(props) {
  return getDb().save(props);
}

我打算让每个访问用户运行一个 WebApp(使用基于时间的触发器来访问 Gmail),但是我想使用ScriptDb独立于运行 WebApp 的用户来存储数据。因此,我认为从 Google Apps 脚本文档集中一个地方以获取数据库实例的章节在这里适用,但是在访问 WebApp 时出现以下错误:

You do not have access to library MyDBLibrary, used by your script, or it has been deleted.

我做错什么了吗?当从 WebApp 访问时,ScriptDb 是否不打算独立于用户运行?

4

2 回答 2

4

Joscha - 您的设置正确,我复制了您报告的所有内容。您缺少的最后一件事是将图书馆项目本身分享给公众。

这样做的方法是 1. 在脚本编辑器中打开库项目 2. 转到文件 -> 共享 3. 在“谁有权访问”部分中,将其设置为任何有链接的人都可以查看(不需要编辑) .

共享设置

没有这个,Apps Script 现在就知道可以向公众提供库代码了。希望这可以帮助。

于 2012-10-29T16:39:21.453 回答
-1

您可能需要打开development mode标志才能使其工作。

这就是我所做的。

  1. 用户 A:创建了一个Master电子表格并创建了一个应用脚本并将其保存为 version 1.0
  2. 用户 A:授予用户访问此工作表的权限,B以便他们可以使用通用应用程序脚本。
  3. 用户 A:将项目访问密钥授予用户B。4.用户B:创建了一个电子表格并添加了资源library with project key
  4. 用户 B:选定的版本1.0
  5. 用户 B:打开development mode

注意:如果我按照步骤 1 到 5 操作,我仍然会看到相同的错误,说我没有权限或脚本已被删除。但是,执行第 6 步也将解决错误并允许您使用共享脚本。

于 2017-08-31T09:41:06.183 回答