Как заставить 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.
Т.е., общая логика такая:
- Вы пишете боту кодовое слово "Потратил"
- Бот заносит в память Ваш ID и Ваш этап общения - в данном случае, это ожидание суммы. И отвечает Вам "Сколько"
- Теперь вы пишете ему сумму - и он записывает сумму в ячейку, уведомляя Вас об этом. Попутно обнуляя ваш этап общения