September 2

Как с помощью бесплатного сервера рассчитать учеников по порядку

Поднять сервер -> Использовать код

Этот способ применялся на практике следующим образом: ученикам выдали некие номера от 1 до числа участников, а потом через рандомайзер в прямом эфире выбрали номер победителя. Возможно, вы найдете ему и другое применение, однако как минимум для таких розыгрышей он неплохо подойдет

1. Создайте таблицу и сервер в App Script по инструкции по поднятию сервера. Остановитесь на пункте 3, где мы могли вставить код:

2. Вставьте код:

function doGet(e) {
  // Открываем активную таблицу и выбираем активный лист
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  
  // Получаем количество строк (для определения автоинкремента)
  var lastRow = sheet.getLastRow();
  
  // Определяем новое значение автоинкремента
  var newId = lastRow > 0 ? sheet.getRange(lastRow, 1).getValue() + 1 : 1;
  
  // Получаем текущую дату
  var currentDate = new Date();
  
  // Получаем userID из GET-параметра
  var userID = e.parameter.userID || "No ID provided";
  
  // Добавляем новую строку
  sheet.appendRow([newId, currentDate, userID]);
  
  // Возвращаем значение автоинкремента
  return ContentService.createTextOutput(newId.toString());
}

3. Разверните проект по инструкции с этим кодом. Если у вас уже был развернут проект по инструкции, вы можете переразвернуть его с имеющимся кодом. Для этого нажмите "управление развертываниями"

... затем "редактировать"

и "новая версия". Когда выберите новую

4. Копируйте ссылку под надписью "Веб-приложение"

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

https://script.google.com/macros/s/AKfycbxMfqQPK4dHB0zUOYnHI8Csst29y-ehTyVYID3YIUcnmoB6BT2JUzicQLua_pqxAuG3/exec?userID={object.user.uid}

Если процесс по пользователю, то получится что-то типа такого:

https://script.google.com/macros/s/AKfycbxMfqQPK4dHB0zUOYnHI8Csst29y-ehTyVYID3YIUcnmoB6BT2JUzicQLua_pqxAuG3/exec?userID={object.uid}

5. В процессе не забудьте выбрать опцию "сохранить ответ в допполе"

Протестируйте процесс, поставив галочку "выполнять по-настоящему"

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