Google Script Cannot call FormApp.getUi() from thi

2019-09-07 06:35发布

问题:

I can't get the simple example copied from the google dev site to work.

The error is: Cannot call FormApp.getUi() from this context

I am NOT attempting to deploy this a web form/app but I am simple trying to run this via the editor!!!

Not sure what I'm doing wrong?!?!?!

The following has been pasted into index.html:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    Hello, World!
  </body>
</html>

The following is pasted into Code.gs:

// Use this code for Google Docs, Forms, or new Sheets.
function onOpen() {
  FormApp.getUi() 
      .createMenu('Dialog')
      .addItem('Open', 'openDialog')
      .addToUi();
}

function openDialog() {
  var html = HtmlService.createHtmlOutputFromFile('Index');
  FormApp.getUi() 
      .showModalDialog(html, 'Dialog title');
}

回答1:

Answered my own question.

The script must be bound to a Form (which mine wasn't!)

So now I need to figure out how to create a Dialog for an Unbound script.

I don't think this is possible!

If I deploy it as a Web App then obviously I have no access to the user UI.

So how would I take the output from ContentService.createTextOutput() and cause a download of a file to occur?