Я пытаюсь создать надстройку Google Таблиц, которая будет работать на боковой панели. Это мой первый, и мне трудно работать в режимах аутентификации.
Это do c, который я использую для справки.
Когда кто-то в моей организации устанавливает сценарий, они видят заголовок меню, но надстройка не может загрузить элементы меню. В журнале указано, что Exception: You do not have permission to call getScriptProperties at ...
. Это из библиотеки, которую я написал и на которую ссылаюсь в своем скрипте. Когда они используют его на do c, где я использовал его раньше, они могут видеть пункты меню.
Судя по этой диаграмме, похоже, что этот пользователь находится в AuthMode.NONE, поскольку они не могут получить доступ к свойствам.
This is the code that I have at the top of my file.
function onInstall(e) {
onOpen(e);
}
function onOpen(e) {
console.info('onOpen(e) fired')
var menu = SpreadsheetApp.getUi().createAddonMenu(); // Or DocumentApp or FormApp.
if (e && e.authMode == ScriptApp.AuthMode.NONE) {
console.info("(e && e.authMode == ScriptApp.AuthMode.NONE)")
// Add a normal menu item (works in all authorization modes).
menu.addItem("Show Sidebar", "showSidebar");
menu.addToUi();
} else {
// Add a new menu (doesn't work in AuthMode.NONE).
log("not (e && e.authMode == ScriptApp.AuthMode.NONE)")
var topUI = SpreadsheetApp.getUi();
topUI.createMenu("Test Set Creator")
.addItem("Show Sidebar", "showSidebar")
.addToUi();
}
console.info(`The user is ${e.user}`)
console.info(`The user's auth mode is ${e.authMode}`)
console.info(`The source is ${e.source}`)
}
So essentially, I want a user to install the add-on and then be able to use it on any spreadsheet they want in the org's domain, not just where it's been used before. I'm having a hard time wrapping my mind around how the different Auth Modes work and how they change per user/per sheet. If the user has to authorize the add on when they install it, why wouldn't they have access to the add on in a new spreadsheet they open?
Here are some other resources I've tried to use:
Google Do c onOpen не срабатывает при доступе к электронной таблице