如何从电子表格自定义函数访问ScriptDB?

时间:2012-10-19 15:56:38

标签: google-apps-script

this post中,我建议使用ScriptDB作为Container Extension代码全局数据的中间存储。我为我的答案编写了一个示例代码,但样本会在error: You do not have permission to call query (line X)行中引发ScriptDb.getMyDb().query(...);异常。我创建了以下更简单的示例来演示问题。代码({1}}和getDBSize函数都允许在编辑器中运行getSource。通过按电子表格ScriptDB对话框中的getDBSize按钮,可以毫无问题地执行Run功能。 Script Manager功能无处不在。

我发布了示例的电子表格 - link。无法共享视图代码,但可以在单元格中输出代码,单元格getSource包含完全相同的代码。

如何允许电子表格代码访问B3

ScriptDB

1 个答案:

答案 0 :(得分:1)

问题是您尝试将此功能作为电子表格custom function运行,自定义功能比您链接的Container Extension页面上的所有示例更受限制。

但是,从理论的角度来看,自定义函数以及简单的事件处理程序(例如onEditonOpen)无法访问需要用户帐户或与用户关联的任何内容,只有“通用”方法。例如,UrlFetchApp,打开当前电子表格,或阅读ScriptProperties

因此,在论文中,查询ScriptDb应该是可能的,因为它是一个通用调用并且与活动用户无关,它类似于ScriptProperties。我没有看到实际上允许您查询数据库的解决方法,但您可以使用ScriptProperties代替。您可以使用ScriptDbJSON.stringify轻松保存并检索要在.parse上保存的任何对象。当然,我不是将ScriptDb功能与ScriptProperties进行比较,而只是一种解决方法。

无论如何,这似乎是我们issue tracker上的增强请求的良好候选者。