【发布时间】:2019-12-30 10:35:19
【问题描述】:
我已经开发了一个脚本并将其部署并发布为附加组件,这是内部应用程序。我可以在表格中看到附加组件,但只有主菜单可见。在 onOpen(e) 中创建的菜单项不可见。
这些菜单在我执行测试时可见,但仅在安装到其他用户时才可用。
我想我在部署中遗漏了一些东西。有人可以帮助我吗?
第 1 步:我点击 Publish-->Deploy as add-on--> 收到消息“您必须配置 G Suite Marketplace SDK 才能发布插件。”。
第 2 步:我去了 GCP,通过 API 启用了 G Suite Marketplace SDK。提供了配置和发布中的所有详细信息,然后单击发布。
步骤 3:现在,插件在 GSuite 市场中可见并且可以安装它。但是只有主菜单出现,里面的子菜单没有出现。
function onInstall(e) {
onOpen(e);
}
function onOpen(e) {
var menu = SpreadsheetApp.getUi().createAddonMenu(); // Or DocumentApp.
if (e && e.authMode == ScriptApp.AuthMode.NONE) {
// Add a normal menu item (works in all authorization modes).
menu.addItem('Submit to Level1', 'P_Level1');
menu.addSeparator();
menu.addItem('Submit to Level2', 'P_Level2');
} else {
// Add a menu item based on properties (doesn't work in AuthMode.NONE).
var properties = PropertiesService.getDocumentProperties();
var workflowStarted = properties.getProperty('workflowStarted');
if (workflowStarted) {
menu.addItem('Submit to Level1', 'P_Level1');
menu.addSeparator();
menu.addItem('Submit to Level2', 'P_Level2');
} else {
menu.addItem('Submit to Level1', 'P_Level1');
menu.addSeparator();
menu.addItem('Submit to Level2', 'P_Level2');
}
menu.addToUi();
}
}
问候, 赛克里希纳。
【问题讨论】:
-
你能在这里分享一下代码sn-p吗?
-
如果您使用全局变量,并在全局范围内为全局变量赋值,这对我来说是一个附加组件的问题。您仍然可以使用全局变量,但只定义名称,不要在全局范围内赋值。当某些代码运行时,从函数中赋值。
-
添加了代码。从谷歌表格进行测试时,代码正在运行。这是独立脚本,部署后无法正常工作。我查过了,代码没有任何全局变量。
-
授权后才添加菜单....
-
在安装插件时提供授权。您能告诉我要对代码进行哪些更改吗?
标签: google-apps-script google-sheets google-sheets-api