Как сделать шаблон листа Google со скриптом, чтобы при каждом создании экземпляра пользователю не нужно было авторизовывать права доступа к скрипту? - PullRequest
1 голос
/ 27 апреля 2020

У меня есть листы Google с меню вызова сценария. Скрипт сохраняется отдельно как библиотека с сохраненной версией. Этот лист сохраняется на общем диске в качестве шаблона домена Google. Пользователи создают около 10 листов в неделю и имеют каждый раз для авторизации сценария.

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

function onEdit(e) {
  const rangeName="A2";
  var ass=SpreadsheetApp.getActiveSpreadsheet();
  var as=ass.getActiveSheet();
  var adresse=as.getActiveRange().getA1Notation();

  Logger.log(JSON.stringify(e));
  if (adresse===rangeName) {
    SpreadsheetApp.getActiveSpreadsheet().rename(as.getRange(rangeName).getValue());
    ass.toast("DONE!");
  }

1 Ответ

0 голосов
/ 08 мая 2020
  • У вас есть сценарий, который должен работать для всех копий, созданных по определенному шаблону (копии делают несколько пользователей).
  • Вы хотите избежать необходимости повторной авторизации сценария пользователями для каждой копии шаблон, который они создают.

Если это правильно, я думаю, что ваш лучший вариант - развернуть сценарий в качестве надстройки и установить надстройку для всех пользователей в домене. Рабочий процесс будет выглядеть следующим образом:

  • Создайте автономный проект Apps Script и свяжите его со стандартным проектом GCP .
  • В начале вашей функции ищите значение в определенной ячейке, цель которой состоит в том, чтобы идентифицировать файл как копию шаблона. Например, что-то вроде этого:
function yourFunction() {
  var templateIdentifier = SpreadsheetApp.getActive().getSheetByName("Settings").getRange("A1").getValue();
  if (templateIdentifier = "12345") { // Check that file is copy of template "12345"
    // Execute the desired script actions
  }
}
  • Шаблон и все его копии должны иметь это значение, поэтому вы, вероятно, защитите эту ячейку от Редакция в оригинальном шаблоне (все копии сохранят эту защиту). Лично я бы также поместил эту ячейку на скрытый лист, чтобы пользователи не могли ее видеть.

  • Проверка на корректную работу надстройки и publi sh it . следуя [этому руководству].

  • После публикации дополнения установите его для всех пользователей в домене, следуя this .

Справка:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...