One time survey
mshs013 opened this issue · comments
Hello @ItamarM
How to make survey only one time? How to restict this function sendWelcomeMessage to trigger only one timefor new user.
@ItamarM ,
Finally I can did this by using bellow code
function sendWelcomeMessage(postData) {
var userId = getSenderId(postData);
var doc = SpreadsheetApp.getActiveSpreadsheet();
var sheet = doc.getSheetByName(ANSWERS_SHEET_NAME); // select the responses sheet
var headerStartRowPosition = 2; // Skip header row.
// Try to locate if the user already answered questions or this is a new question
var userIdsValues = sheet.getRange(headerStartRowPosition, 1, sheet.getLastRow(), 1).getValues(); // Skip header row; Read all rows, first column
var userAnswerRow = undefined;
for (var i = 0; i < userIdsValues.length; i++) {
if (!userIdsValues[i][0]) {
break;
}
if (userIdsValues[i][0] == userId) {
userAnswerRow = i + headerStartRowPosition; // Make sure we not return the zero index but the actual row number
break;
}
}
if (userAnswerRow == undefined) {
var keyboardObject = createKeyboard([gWelcomeStartButton]);
sayText(gWelcomeMessage, getSenderId(postData), gAccessToken, gBotName, gBotAvatar, stateSurveyStarted(), keyboardObject);
}
}