google-apps-script随机链接生成器

时间:2018-04-25 07:01:48

标签: google-apps-script google-form

我手边有一个问题,我无法弄清楚自己。 为了写我的论文,我需要做一个调查。更精确:我需要一个用于我的控制,一个用于我的治疗组。我正在使用Google表单。

我找不到在Forms本身中随机化部分的方法,所以我查看了脚本编辑器。我试图找出,如果有一种方法可以有两个表格,当点击链接时,这两个表格将被随机分配给参与者。

我想到了类似的东西:

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 :(得分:0)

那么,当点击链接时,您想要一个分配给用户的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)
  }
}

分配完成后,您可以将合并邮件发送给参与者,也可以使用其他应用脚本功能在循环内发送个别调查电子邮件。

答案 1 :(得分:0)

你可以在gs文件中有一个链接数组,然后在doGet()里面随机选择一个数组元素,它将是一个链接并填充模板中的链接。

在模板中,您可以编写客户端javascript代码以重定向到该链接,或向用户显示一个按钮以重定向到该链接。

当我有一些额外的时间时,会尝试使用示例代码段来更新此答案。

如果您有任何问题,可以对具体问题发表评论。