javascript - Google Apps 脚本 - 从自定义菜单项获取 google 表格中的权限错误
问题描述
我创建了一个谷歌脚本来从谷歌表格中导出特定数据。知道我的脚本无法创建新文件,除非从自定义菜单运行,我创建了以下代码:
function onOpen () {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [];
MenuEntries.push({name:"Export Project sheets",
functionName:"exportProjectSheet"})
ss.addMenu("Export", menuEntries);
}
这反过来又调用了这个自定义函数(出于相关性和隐私原因,除了这个选择之外,大部分都被编辑了):
function exportProjectSheets() {
var id = DocumentApp.create("WO #" + projectWorkOrderNumber.getValue()
+ " " + projectName.getValue()).getId(); //Create a new document with
the project name, plus grab it's id as a value
//DOCUMENT FILLING
var doc = DocumentApp.openById(id); //create a variable that refers to
the document body so we can edit it
}
我很确定我已经授予了所有必要的访问权限 - 但是由于某种原因,每当我尝试在自定义菜单中运行该功能时,我都会收到错误消息:“您没有调用 create 的权限。” 是什么赋予了?
{
"timeZone": "America/New_York",
"dependencies": {
},
"exceptionLogging": "STACKDRIVER",
"sheets": {
"macros": [{
"menuName": "exportProjectSheet",
"functionName": "exportProjectSheet"
}, {
"menuName": "timestamp",
"functionName": "timestamp"
}, {
"menuName": "onOpen",
"functionName": "onOpen"
}, {
"menuName": "export",
"functionName": "export"
}]
}
编辑:根据要求添加清单文件数据。
解决方案
检查文件-> 项目属性-> 范围以获取自动生成的范围。如果您看到 currentonly,那么您在某处指定了 // @OnlyCurrentDoc,并且将无法访问除此脚本绑定到的文件之外的任何其他文件。如果您无法删除该评论,您可以添加 // @NotOnlyCurrentDoc 以使其无效(即,如果它在库中)。-Tehhowch
这是正确的答案。
推荐阅读
- java - 意外的记录类型(org.apache.poi.hssf.record.HyperlinkRecord)
- html - 每当访问应用程序时,如何在 vue js 上显示动画?
- tsql - 如何将下一个查询变成 Power Query,我只能执行第一部分
- swift - 如何使 ObservableObject 符合 Codable 协议?
- javascript - 防止两个事件在彼此之后立即触发
- laravel - 从 Vagrant 访问 Lumen 公用文件夹
- excel - 在满足条件的情况下将单元格复制到另一张工作表循环
- java - 我可以使用动态编程降低时间复杂度吗?
- python-3.x - 如何在不指向文件路径的情况下打开文件?
- javascript - 检索通过ajax调用传递给php控制器的文件列表