Enum AuthMode

AuthMode

列舉,用於識別 Apps Script 可透過觸發函式執行的授權服務類別。這些值會以觸發函式事件參數 eauthMode 屬性形式公開。詳情請參閱外掛程式授權生命週期指南

如要呼叫列舉,請呼叫其父項類別、名稱和屬性。例如 ScriptApp.AuthMode.CUSTOM_FUNCTION

function onOpen(e) {
  const 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).
    const properties = PropertiesService.getDocumentProperties();
    const 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();
}

屬性

屬性類型說明
NONEEnum這個模式不允許存取任何需要授權的服務。當外掛程式執行 onOpen(e) 簡單觸發條件,且使用者已在其他文件中安裝外掛程式,但外掛程式尚未在目前文件中使用時,就會發生這種情況。
CUSTOM_FUNCTIONEnum這個模式可存取部分服務,用於自訂試算表函式。其中部分服務 (包括試算表服務的唯讀存取權) 通常需要授權,但如果是在自訂函式中使用,則不需要授權。由於自訂函式不含事件參數,因此系統絕不會傳回這個值;記錄這個值只是為了說明自訂函式會在自己的授權模式中執行。
LIMITEDEnum這個模式可存取部分服務,當附加元件或繫結至文件的指令碼執行 onOpen(e)onEdit(e) 簡單觸發程序時,就會進入這個模式,但 NONE 所述情況除外。
FULLEnum這個模式可存取所有需要授權的服務。如果外掛程式或指令碼因 LIMITEDNONE 所述以外的任何觸發條件而執行,就會進入這個模式。