我创建了一个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是否无意独立于用户运行?
答案 0 :(得分:4)
Joscha - 你有正确的设置,我复制了你报告的所有内容。你遗失的最后一件事是将图书馆项目本身分享给公众。
这样做的方法是 1.在脚本编辑器中打开Library项目 2.转到文件 - >分享 3.在“谁有访问权限”部分中,将其设置为链接可以查看(不需要编辑)的任何人。
如果没有这个,Apps Script现在知道可以向公众提供库代码。希望这可以帮助。
答案 1 :(得分:-1)
您可能需要打开development mode
标志才能使其正常工作。
这就是我的所作所为。
Master
电子表格并创建了应用脚本,并使用版本1.0
进行了保存。B
访问此工作表,以便他们可以使用常见的应用脚本。B
提供项目访问密钥。
4.用户B:创建了一个电子表格并添加了资源library with project key
。1.0
。development mode
。注意:如果我按照步骤1到5进行操作,那么我仍然会看到相同的错误,说我没有权限或脚本已被删除。但是,同样执行步骤6将解决错误并允许您使用共享脚本。