Как заставить telegram бота дождаться ответа от пользователя и записать его в google sheets?

Всем привет! Кто может подсказать, как сделать так, чтоб при написании боту например «Потратил», бот отвечал «Сколько?», я пишу сумм и бот записывает ее в ячейку таблицы. У меня получилось все кроме записи суммы в ячейку. Бот записывает в ячейку но не сумму а слово «Потратил»

    function doPost(e) {
  let update = JSON.parse(e.postData.contents);
    if (update.hasOwnProperty('message')) {
    let msg = update.message.text;
    let file = SpreadsheetApp.openById(sheetLogId);
    let sheet = file.getSheets()[3];
    let lastRow = sheet.getLastRow() + 1;
    switch (msg) {
      case 'GO' : 
         sendText (update.message.chat.id, 'GO!!!', KEYBOARD_2);
      break;  
      
      case 'Завершить' : 
        sendText (update.message.chat.id, 'GO?', KEYBOARD);
      break;  
            
      case 'Продолжить' : 
        sendText (update.message.chat.id, 'GO!!!', KEYBOARD_2);
      break;  
            
      case '? Заработал' : 
        sendText (update.message.chat.id, 'Откуда деньги??', KEYBOARD_3);
      break;  
      
      case '? Потрател' : 
         sendText (update.message.chat.id, 'СКОЛЬКО?');
         sheet.setActiveSelection('B' + lastRow).setValue(msg);
      break;
                                
      default: 
        sendText (update.message.chat.id, 'ОК, записал! Еще что-то?', KEYBOARD_END);
            
    }

Ответы (1 шт):

Автор решения: Prianichkin Sergey

Вам необходимо сделать цепочку сообщений.

Допустим, после того, как Вы написали боту слово "Потратил" - бот должен "запомнить", что Вы его спрашивали. Например, через class PropertiesService.

Т.е., общая логика такая:

  1. Вы пишете боту кодовое слово "Потратил"
  2. Бот заносит в память Ваш ID и Ваш этап общения - в данном случае, это ожидание суммы. И отвечает Вам "Сколько"
  3. Теперь вы пишете ему сумму - и он записывает сумму в ячейку, уведомляя Вас об этом. Попутно обнуляя ваш этап общения
→ Ссылка