我試圖根據用戶電子郵件創建一個Google表單自定義菜單。 代碼如下:Session.getActiveUser().getEmail()結果不一致
var AllowedReportRecipients = ["[email protected]", "[email protected]", "[email protected]"];
var ReportRecipient = null;
function onOpen()
{
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu('Custom');
menu.addItem('Edit', 'editHtm')
.addItem('History', 'historyHtm');
var usr = Session.getActiveUser().getEmail();
var isReportee = false;
for (var i=0;i<AllowedReportRecipients.length; i++)
if (AllowedReportRecipients[i] == usr)
{
ReportRecipient = usr;
isReportee = true;
}
if (isReportee)
menu.addItem('Request abc', 'sendABC');
menu.addToUi();
}
這是一個未發表片腳本。正如其他人報告了對getActiveUser()的調用。當表單的非所有者打開表單時,getEmail()返回空白。但是,以後執行的getActiveUser()。getEmail()調用會正確返回登錄的用戶電子郵件。例如,當在historyHtm中響應「歷史」菜單項調用時,點擊它的工作。爲什麼區別?我如何正確加載我的菜單?