Как отобразить окна предупреждений или подсказать незарегистрированным пользователям - PullRequest
0 голосов
/ 10 октября 2018

Я настраиваю электронную таблицу, пользователи которой не обязательно должны иметь учетную запись Google, и для этого не требуется входить в систему.

Я хотел бы взаимодействовать с пользователями двумя способами, которые возможны с Browserучебный класс.Одним из них является отображение предупреждения во всплывающем окне, чтобы предупредить пользователей не редактировать поле.Это делается с помощью Browser.msgBox или 100 ui.alert.Второе - запрос ввода в окне, что хорошо выполняется с Browser.inputBox().

Хотя мой код работает нормально, когда я вошел в систему как владелец, он бесполезен при редактировании незарегистрированным пользователем.

Можно ли заставить эти функции работать для незарегистрированных пользователей, и если да, то как?

Иначе, есть ли обходные пути для достижения аналогичных функций?

Вот минимальный пример того, что я сделал:

function onEdit(event) {
  var ss = SpreadsheetApp.getActiveSheet();   
  var eventRange = event.range;   
  var eventRow = eventRange.getRow();
  var eventCol = eventRange.getColumn();
  if(eventCol == 1){
    protectDateField(ss, eventRow, eventCol)
    }
  }

  function protectDateField(ss, eventRow, eventCol){
    var ui = SpreadsheetApp.getUi();
    ui.alert("Do Not Edit This Field!");
    ss.getRange(eventRow,eventCol).clearContent(); 
    }

1 Ответ

0 голосов
/ 13 октября 2018

Короткий ответ

То, что вы хотите сделать, невозможно в Google Sheets.

Объяснение

  • Чтобы запустить скрипт, привязанный к электронной таблице, пользователь долженбыть редактором для этой таблицы.
  • Простые триггеры не могут получить доступ к службам, для работы которых требуется авторизация.
  • Некоторые дополнительные ограничения применяются, когда триггеры запускаются анонимными пользователями.

ПРИМЕЧАНИЯ:

  1. Необходимые области авторизации для каждого метода включены в раздел документации для каждого метода.
  2. Анонимные пользователи не могут авторизовать сценарии для запуска устанавливаемыми триггерами, поскольку процесс авторизации требует использования usar.учетная запись для регистрации соответствующих полномочий.

Для получения дополнительной информации см .:

Временные решения

Невозможно достичь желаемой функциональности, используя только Google Sheets, но вы можете

  • создать веб-приложение с помощью скрипта Apps и встроить в него электронную таблицу
  • создание веб-приложения с использованием другой платформы и встраивание в него электронной таблицы
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...