Viber / build-a-bot-with-zero-coding

An example of using Google Sheets to create a Viber survey chat bot without a backend server

Home Page:https://developers.viber.com/blog/2017/09/12/build-a-bot-with-zero-coding

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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);
  }
}