Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"Cannot call DocumentApp.getUi() from this context" error

function createAndSendDocument() {
// Create a new document with the title 'Hello World'
var ui = DocumentApp.getUi();
var response1 = ui.prompt('What should be Name of your Document', ui.ButtonSet.YES_NO);
var doc = DocumentApp.create(response1.getResponseText());

var response = ui.prompt('What should be content of your Document',  ui.ButtonSet.YES_NO);
// Add a paragraph to the document
var paragraph  = prompt("What should be content of your Document")
doc.appendParagraph(response.getResponseText());

// Save and close the document
doc.saveAndClose();

// Get the URL of the document
var url = doc.getUrl();

// Get the email address of the user
var response2 = ui.prompt('What should be content of your Document', ui.ButtonSet.YES_NO)
var emailAddress = response2.getResponseText();

// Send the user an email with a link to the document
GmailApp.sendEmail(emailAddress,
                 'Hello from my first Google Apps Script!',
                 'Here is a link to a document created by my ' +
                 'first Google Apps Script: ' + url);
}

This the code I entered, and it resulted in an Error:

"Cannot call DocumentApp.getUi() from this context. (line 3, file "Code")"

What is the problem in the code?

like image 967
Adit Jain Avatar asked Sep 17 '13 03:09

Adit Jain


1 Answers

If it is in a spreadsheet, not a document, it will give this error.

Therfore you have to use the spreadsheet alternative

function onOpen() {
   var ss = SpreadsheetApp.getActive();
   var items = [
      {name: 'First item', functionName: 'menuItem1'},
      null, // Results in a line separator.
      {name: 'Second item', functionName: 'menuItem2'}
   ];
   ss.addMenu('Custom Menu', items);
}

https://developers.google.com/apps-script/guides/menus

like image 139
Stijn Van Antwerpen Avatar answered Oct 10 '22 05:10

Stijn Van Antwerpen