генератор случайных ссылок google-apps-script - PullRequest
0 голосов
/ 25 апреля 2018

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

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

Я думал о чем-то вроде:

function random_2(){
    var myrandom=Math.round(Math.random())
    var link1="http://www.google1.com"
    var link2="http://www.google2.com"
        if (myrandom==0)
        window.location=link1
    else if (myrandom==1)
        window.location=link2

}

Проблема в том, что я очень неопытен в кодировании, и, кажется, до сих пор никто не хотел заниматься этим! Но должен быть простой способ сделать это. Я был бы очень признателен за любой вклад! Спасибо.

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Вы можете иметь массив ссылок в файле gs, а затем внутри doGet () случайным образом выбрать элемент массива, который будет ссылкой, и заполнить ссылку в шаблоне.

В шаблоне вы можете написать код JavaScript на стороне клиента для перенаправления на эту ссылку или показать пользователю кнопку для перенаправления на эту ссылку.

Попытка обновить этот ответ с примерами фрагментов кода, когда я получу дополнительное время.

Вы можете прокомментировать конкретный вопрос, если он у вас есть.

0 голосов
/ 25 апреля 2018

Итак, вы хотите, чтобы URL-адрес, назначенный пользователю, A или B, когда нажимает на ссылку? Если это так, вы не можете.Однако вы можете иметь список участников и случайным образом назначать ссылку в таблице вниз по столбцу.

Примерно так будет работать:

// Generate a random number and return a link
function assignRand() {
  var int = Math.round(Math.random() * 2)
  if(int == 0) {
    return "link1"
  } else {
    return "link2"
  }
}

// Loop through a list of names, emails (whatever) in col A
// Assign a random link to each
function write() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet7")
  var data = sheet.getDataRange().getValues();

  for(var i=0; i<data.length; i++) {
    var link = assignRand()
    sheet.getRange((i+1), 2).setValue(link)
  }
}

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

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