Google脚本文档openbyid权限错误
问题描述:
如果在Google Doc的onOpen函数中,我通过以id打开电子表格来创建电子表格对象,如果我使用菜单系统,如何将该对象传递给其他函数? (更长的解释如下)Google脚本文档openbyid权限错误
我有一个谷歌文档脚本,将在特定时间拍摄文档的快照,然后将其导出到.docx并使用快照的URL更新电子表格。这是通过一个菜单选项开始,像这样:
function onOpen(e) {
DocumentApp.getUi().createMenu('Senate Secretary Menu')
.addItem('Snapshot', 'snapshot')
.addToUi();
}
从调用函数的快照()
function snapshot() {
//open the spreadsheet using id
var ss=SpreadsheetApp.openById('spreadsheet_id');
这会产生一个you do not have permission to call openbyid()
错误
据我所知,谷歌脚本禁止openbyid()在自定义函数中被调用(我将它解释为电子表格中的函数,但是是whatevs)。 如果我更改onOpen函数以包含OpenById()调用它将起作用。
function onOpen(e) {
DocumentApp.getUi().createMenu('Senate Secretary Menu')
.addItem('Snapshot', 'snapshot')
.addToUi();
var ss=SpreadsheetApp.openById('spreadsheet_id');
}
我的问题是如何将文件对象从onOpen函数传递给快照函数?
答
对于任何人也可能有这个问题。我从Google Quickstart中获取了菜单模板,但它在标题注释块中有@OnlyCurrentDoc
标志,我错过了。解决了这个问题并解决了我的问题。
只是为了澄清,您是使用实际的电子表格ID(字母和数字的长序列)还是字符串“spreadsheet_id”? – Brady
它实际上是一串很长的数字。但是我发现下面的错误。 – rwreed