0

Я пытаюсь найти имя пользователя с помощью activeuser. Работает только первая часть, а последняя часть - нет. Моя цель - отобразить лист на основе имени пользователя активного пользователя (имя листа основано на имени пользователя). Ниже приведен код, который я использую.искать имя пользователя, используя getactiveuser, используя скрипт Google Spreadsheet

function onOpen() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var menuEntries = []; 
    menuEntries.push({name: "Test getActiveUser/getEmail", functionName: "onTest"}); 
    ss.addMenu("Rep Drowndown", menuEntries); 
    testGetEmail("onOpen"); 
} 


function onTest() { 
    testGetEmail("menu function"); 
}; 


function testGetEmail(callerId) { 
    var userEmail = ""; 
    var activeUser = Session.getActiveUser(); 

    if (activeUser == null) 
    Browser.msgBox("Session.getActiveUser() returned null", "called by " + callerId, Browser.Buttons.OK); 
    else 
    userEmail = activeUser.getEmail(); 

    if (userEmail == "") 
    Browser.msgBox("Your Email returned an empty string", "called by " + callerId, Browser.Buttons.OK); 
    else 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 

    var lookup = Session.getActiveUser().getEmail(); 
    var range = ss.getRange('$A$3:$B$8').getValues(); 
    var lookupRange = []; 
    for (var i = 0; i < range.length; i++) 
    lookupRange.push(range[i][0]); 

    var index = lookupRange.indexOf(lookup); 
    if (index == -1) { 
    // implicit no-op 
    } 
    else { 
    var link = range[index][2] 
    var sheet = ss.getSheetByName(link); 
    sheet.showSheet(); 
    }; 
} 

ответ

0

Вам нужно настроить installable trigger. Это позволяет скрипт для запуска с авторизацией, в то время как обычно «OnOpen()» работает как Simple Trigger. Поскольку Simple Triggers не могут авторизироваться как пользователи, вы никогда не получите адрес электронной почты.

Простейшим решением является установка testGetEmail() для запуска при открытии. Сделайте это в редакторе сценариев, выбрав в меню «Ресурсы»> «Триггеры текущего проекта». Затем нажмите «Нет триггеров». Нажмите здесь, чтобы добавить его сейчас ». Наконец, настройте свой пусковой механизм:

  1. Выберите имя вашей функции (testGetEmail) из первого раскрывающегося списка в разделе «Выполнить».
  2. Выберите «Из таблицы» во втором раскрывающемся списке в разделе «События».
  3. Выберите «On Open» в третьем выпадающем меню.

Затем проверьте, чтобы убедиться, что я не совершал опечатка :-)

+0

Спасибо @jjjjoe ваше предложение работал. Я новичок в этом и все еще изучаю свой путь. Спасибо за помощь. –

+0

Я, похоже, не рассмотрю ваши предложенные изменения. Сожалею. Моя репутация не позволит мне с момента. Это тоже помогло ... Спасибо. –

+0

Нет проблем; похоже, кто-то одобрил мои изменения. Я сделал изменения в локальном редакторе, потому что искал логические проблемы, но хорошо, что кто-то их одобрил :-) – jjjjoe

Смежные вопросы