Rozszerz interfejs Google Arkusze kalkulacyjne za pomocą aplikacji Google Web

Stworzyłem skrypt dla arkuszy kalkulacyjnych Google, ten skrypt po prostu dodaje nowy element menu, jak opisano tutajNiestandardowe elementy menu w arkuszu kalkulacyjnym. Następnie wdrażam ten skrypt jako aplikację internetową i chcę, aby wszyscy użytkownicy, którzy zainstalują aplikację, mogli zobaczyć nową pozycję menu. I utknąłem w tym momencie.

Jak rozumiem, po wdrożeniu skryptu jako aplikacji internetowej funkcje onOpen tracą swoje znaczenie. Tak więc wewnątrz doGet tworzę niestandardowy wyzwalacz dla zdarzenia onOpen, dołączam do niego moduł obsługi myOnOpen, a wewnątrz myOnOpen dodaję element menu, ale element nie pojawia się.

Oto mój kod:

function doGet() {
    var newSheet = SpreadsheetApp.create("new sheet");
    var newId = newSheet.getId();
    ScriptProperties.setProperty('newId', newId); 

    ScriptApp.newTrigger("myOnOpen")
        .forSpreadsheet(newId)
        .onOpen()
        .create();
};

function myOnOpen() {
    var newId = ScriptProperties.getProperty('newId');
    var sheet = SpreadsheetApp.openById(newId);

    var entries = [ { name : "Show bingo", functionName : "Bingo" } ];
    sheet.addMenu("My Menu", entries);
};

function Bingo() {
    Browser.msgBox("Bingo!");
};

Tak więc, gdy użytkownik, który zainstalował aplikację, otwiera arkusz kalkulacyjny „nowy arkusz”, nie widzi „Mojego menu”. Co ja tu robię źle? Dlaczego pozycja menu nie pojawia się? Pod koniec dnia chcę stworzyć aplikację internetową, która rozszerza interfejs Google Spreadsheets o dodatkowe menu i okna dialogowe.

Wszelkie porady są mile widziane. Dzięki!

questionAnswers(1)

yourAnswerToTheQuestion