WebApp访问的库中的ScriptDb

时间:2012-10-28 22:18:32

标签: google-apps-script

我创建了一个Google Apps脚本项目,作为WebApp发布,对任何人都可见,作为访问用户运行。

此WebApp包含一个库项目,该项目具有访问ScriptDb的方法,如下所示:

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

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

我打算每个访问用户运行一个WebApp(使用基于时间的触发器来访问Gmail),但是我想使用ScriptDb独立于运行WebApp的用户存储数据。 所以我认为Google Apps脚本文档中的章节Centralizing a Place to Get a Database Instance适用于此处,但是在访问WebApp时出现以下错误:

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

我做错了吗?当从WebApp访问时,ScriptDb是否无意独立于用户运行?

2 个答案:

答案 0 :(得分:4)

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

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

Sharing settings

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

答案 1 :(得分:-1)

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

这就是我的所作所为。

  1. 用户A:创建了Master电子表格并创建了应用脚本,并使用版本1.0进行了保存。
  2. 用户A:允许用户B访问此工作表,以便他们可以使用常见的应用脚本。
  3. 用户A:为用户B提供项目访问密钥。 4.用户B:创建了一个电子表格并添加了资源library with project key
  4. 用户B:所选版本1.0
  5. 用户B:开启development mode
  6. 注意:如果我按照步骤1到5进行操作,那么我仍然会看到相同的错误,说我没有权限或脚本已被删除。但是,同样执行步骤6将解决错误并允许您使用共享脚本。