可能的原因如下:
通常这是由授权生命周期的问题引起的,特别是在开放阶段。
最常见的罪魁祸首是代码中的一个全局变量,它试图在未经授权的情况下访问Google服务,例如:
var doc = DocumentApp.getActiveDocument();
参见文档:
警告:当您的onOpen(e)函数运行时,将加载整个脚本并执行任何全局语句。这些语句在与onOpen(e)相同的授权模式下执行,如果模式禁止它们将失败。这可以防止打开(e)。如果您发布的加载项无法添加其菜单项,请查看浏览器的JavaScript控制台以查看是否抛出了错误,然后检查您的脚本以查看onOpen(e)函数或全局变量是否调用了在AuthMode.NONE中不允许。
这是我的剧本:
function onOpen(e) {
SpreadsheetApp.getUi().createAddonMenu()
.addItem('Browse Templates', 'browseTemplates')
.addToUi();
}
function onInstall(e) {
onOpen(e);
}
function browseTemplates(){
collectBasicData();
// Display a modal dialog box with custom HtmlService content.
var htmlOutput = HtmlService
.createTemplateFromFile("Gallery").evaluate()
.setWidth(700)
.setHeight(510);
SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Spreadsheet123 - Template Vault');
}
function collectAllData(){
var sheet = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(DATA_SHEET);
DATA = sheet.getDataRange().getValues();
return DATA;
}
function collectBasicData(){
var sheet = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(PIVOT_SHEET);
var tabSheet = SpreadsheetApp.openById(SPREADSHEET_ID).getSheetByName(TAB_SHEET);
BASIC_DATA = {
"tab_about" : getValue(tabSheet,"B1"),
"tab_help": getValue(tabSheet,"B2"),
"pivot":sheet.getDataRange().getValues()
};
return false;
}
function getValue(sheet,addr){
return sheet.getRange(addr).getValue().toString().replace(/^\s+|\s+$/g, '');
}
function createACopy(id){
var docName = DocsList.getFileById(id).getName();
return DocsList.getFileById(id).makeCopy(docName).getUrl();
}
function insertInCurrent(id){
var destinationSpreadSheet = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheets = SpreadsheetApp.openById(id).getSheets();
for(var i=0;i<sourceSheets.length;i++){
var sheetName = sourceSheets[i].getName();
var source = SpreadsheetApp.openById(id).getSheetByName(sheetName);
source.copyTo(destinationSpreadSheet).setName(sheetName);
}
}
请你帮我一点或多少。
提前致谢
答案 0 :(得分:1)
好的,所以我的代码实际上是正确的,但我的错误是我应该保存在新版本下对我的代码所做的任何更改,然后将其发布到商店,我没有,因此我所做的所有更改都是简单地忽略了
function onOpen(e) {
SpreadsheetApp.getUi().createAddonMenu()
.addItem('Browse Templates', 'browseTemplates')
.addToUi();
}
function onInstall(e) {
onOpen(e);
}