Menus personalizados para complementos do editor

Os complementos do Editor publicados podem criar itens de menu personalizados no menu Extensões do editor. Insira um menu de complementos usando Ui.createAddonMenu e adicione itens a ele com Menu.addItem. Os menus geralmente são criados no método onOpen do complemento.

Crie menus dinâmicos que mudam com base nas interações do usuário ou no estado do complemento. No entanto, os complementos precisam criar um menu inicial antes de serem autorizados pelo usuário. Por isso, verifique o modo de autorização do complemento antes de criar menus em onOpen. Não realize nenhuma ação que exija autorização (como verificar as Properties do script) enquanto o complemento estiver em ScriptApp.AuthMode.NONE. Consulte o ciclo de vida de autorização para mais detalhes sobre os modos e o ciclo de vida de autorização.

Tentar realizar ações que exigem autorização quando o modo de autorização é ScriptApp.AuthMode.NONE resulta em um erro. Isso pode impedir que os menus de complementos sejam exibidos.

O exemplo a seguir mostra como criar um menu de complementos dinâmico para diferentes modos de autorização:

function onOpen(e) {
  // Or DocumentApp, SlidesApp, or FormApp.
  var menu = SpreadsheetApp.getUi().createAddonMenu();
  if (e && e.authMode == ScriptApp.AuthMode.NONE) {
    // Add a normal menu item (works in all authorization modes).
    menu.addItem('Start workflow', 'startWorkflow');
  } 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('Check workflow status', 'checkWorkflow');
    } else {
      menu.addItem('Start workflow', 'startWorkflow');
    }
    // Record analytics.
    UrlFetchApp.fetch('http://www.example.com/analytics?event=open');
  }
  menu.addToUi();
}