2014-02-07 1 views
0

Можно попросить пользователей написать свои адреса электронной почты в FORM, после чего они получат электронное письмо с уникальным номером?Скрипт Google Apps для форм: хотите отправить конкретный номер для пользователей по электронной почте

я узнать, как отправить автоматическое сообщение электронной почты, чтобы податель здесь - http://www.labnol.org/internet/auto-confirmation-emails/28386/

Но не знаю, как отправить ему уникальный номер каждого!

+0

, какой уникальный номер вы хотите, чтобы отправить его обратно? вы можете отправить ему уникальный идентификатор ответа формы или, например, MD5 его адреса электронной почты: в сценарии Amit Agarwal заменить: message = «Мы получили ваши данные.
Спасибо!

Ваш уникальный идентификатор:« + Утилиты. base64Encode (Utilities.computeDigest (Utilities.DigestAlgorithm.MD5, e.namedValues ​​["Адрес электронной почты"]. toString())); – Harold

+0

Я хочу отправить пользователям уникальный идентификатор ответа формы. Лучше начать с 1 и пойти после этого с другими номерами ... Но также мне нужно получить этот номер самостоятельно и поместить его в таблицу, которая автоматически создается для моей формы диска. – Muhahaha

ответ

0

Вы можете попробовать приведенный выше код, чтобы получить уникальный идентификатор ответа формы. Но это не отсортированные числа (1,2, ...). Это уникальное случайное число, генерируемое формой. мой совет - не пытаться создать что-то, начиная с 1, и идти дальше, так как у вас нет безопасности, чтобы иметь отсортированный список элементов. см. here для деталей.

/** 
* for a form with 2 question named "question 1" and "question 2" 
* this function need to be associated directly to the form 
* and it need to be associated to a trigger "on form submit" 
* the "e" given as argument is generated by the form submit trigger 
*/ 
function submitFormFunc(e) { 
    var items = e.response.getItemResponses(); 
    var responses={}; 
    for(var i = 0; i< items.length; i++) { 
    responses[items[i].getItem().getTitle()]=items[i].getResponse(); 
    } 

    var responseTable = []; 
    var responseIndex = ["Timestamp","ID","question 1","question 2"]; 
    responseTable.push(e.response.getTimestamp().toString()); 
    responseTable.push(e.response.getId()); 
    responseTable.push(responses["question 1"]); // my form have 2 questions named "question 1" and "question 2" 
    responseTable.push(responses["question 2"]); 
    responseTable.push(FormApp.getActiveForm().getResponse(e.response.getId()).getEditResponseUrl()); 
    SpreadsheetApp.openById("YOUR_SPREADSHEET_ID").appendRow(responseTable); 
} 

--EDIT--

, если Вы хотите что-то короче, вы можете использовать штамп времени:

изменения (или добавить) responseTable.push(e.response.getTimestamp().toString()); для

responseTable.push(e.response.getTimestamp().getTime().toString()); 

или даже короче, но немного менее эффективно:

Вы можете добавить строку:

responseTable.push(generateUnique()); 

и добавить функцию:

function generateUnique(){ 
    var vals = SpreadsheetApp.openById("YOUR_SPREADSHEET_ID").getRange("A:A").getValues(); 
    var ids=[]; 
    for(var i in vals){ 
    ids.push(vals[0]); 
    } 
    var newId = Math.floor(Math.random()*100); // change 100 for something bigger if needed 
    while(ids.indexOf(newId)>-1){ 
    newId = Math.floor(Math.random()*100); 
    } 
    Logger.log(newId); 
    return(newId); 
} 
+0

Гарольд благодарит вас за ваше время! Мне удастся выполнить код и работать, но пришлите мне следующее: Ваш уникальный Id: gJnyU5iJKgI32Ep/UCKqWg == Это слишком сложно. Форма нужна для сбора данных для регистрации спортивных турниров, и пользователи должны знать их номер, нам также нужно знать номер пользователя. Но нам нужны простые цифры здесь ... не такие цифры и буквы. Как это сделать? Каждый пользователь имеет определенный TimeStamp, когда он отправляет нам свою информацию. Как отправить пользователю этот TimeStamp. В этом случае TimeStamp будет уникальным номером, который мы хотим иметь! – Muhahaha

+0

Я отредактировал anwser, чтобы вы могли использовать метку времени или даже более короткий маркер – Harold

+0

Harlond спасибо, но я не программист и не могу понять, как разместить этот код для работы. Могу ли я попросить вас увидеть весь мой код здесь и рассказать мне, как добавить TimeStamp в него: https://docs.google.com/document/d/1UZDUzuMjm5RaNU1FOneoDBefstpJh3D4GbSdQvBhBSY/edit?usp=sharing – Muhahaha

Смежные вопросы