//
// Сценарий опроса пользователя и сохранения результатов в таблице Google Sheet
//
// Указать наименование сервисного аккаунта
установитьПеременную("email", "autofaqaccount@autofaqproject.iam.gserviceaccount.com") +
// Указать идентификатор таблицы Google Sheet
установитьПеременную("sheetId", "18ItMIY6-epFpT1yoYuP2NyE2jRND8V-uxR2XTUd2tC8")+
// Указать название листа в таблице Google Sheet
установитьПеременную("sheetName", "Sheet1")+
//
// Опрос пользователя
задатьПользователюВопрос("Как вас зовут").сохранитьРезультат("sendFio") +
задатьПользователюВопрос("Кем вы работаете").сохранитьРезультат("sendOtdel") +
задатьПользователюВопрос("Сколько вам лет").сохранитьРезультат("sendAge") +
задатьПользователюВопрос("Уточните, пожалуйста, что для Вас является приоритетным?").сВариантамиОтвета("Получение максимальной суммы","Простота получения").сохранитьРезультат("sendPriority")+
задатьПользователюВопрос("Укажите, на какие цели предназначается займ?").сохранитьРезультат("sendGoal")+
//
// Формирование тела запроса на добавление 1 строки в конец таблицы, количество столбцов - не более 25
выполнитьJs("""
// Дата добавления
var sendDate = new Date();
// Список добавляемых значений
var addValues = [sendDate, userLogin, sendFio, sendOtdel, sendAge, sendPriority, sendGoal];
// Расчет необходимого числа колонок
var sheetsNames = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','R','S','T','U','V','W','X','Y','Z'];
var sheetEnd = sheetsNames[addValues.length];
// Формирование тела запроса
var requestBody = {"range": sheetName+"!A1:"+sheetEnd+"1", "majorDimension": "ROWS", "values":[addValues,]};
var exit = {'requestBodyJSON':JSON.stringify(requestBody), 'sheetEnd':sheetEnd};
exit;
""") +
//
// Получение временного токена для работы с гугл таблицей
вызвать.внешнийСервис("https://denisk.autofaq.ai/gtoken","GET").сЗаголовками(("Content-Type", "application/json"),("charset", "utf-8")).сПараметрами(("email","{email}")).сохранитьРезультат(("message","message"),("token","token"),("status","status"))+
если("{http_code} > 210").то(
комментарий("Сценарий не смог получить токен для работы с таблицей. Код {http_code}")+
сообщениеПользователю.сШаблоном("Спасибо за участие, но что-то сломалось и я не смог сохранить результаты.")+
завершить
)+
если("{status} == error").то(
комментарий("Сценарий не смог получить токен для работы с таблицей. {message}")+
сообщениеПользователю.сШаблоном("Спасибо за опрос, но что-то сломалось и я не смог сохранить результаты.")+
завершить
)+
//
// Отправка данных в гугл таблицу
вызвать.внешнийСервис("https://sheets.googleapis.com/v4/spreadsheets/{sheetId}/values/{sheetName}!A1:{sheetEnd}1:append","POST").сПараметрами(("valueInputOption","USER_ENTERED")).сЗаголовками(("Authorization", "Bearer {token}"),("Content-Type","application/json")).сТеломСообщения("{requestBodyJSON}").сохранитьРезультатКакСтроку("result")+
если("{http_code} > 210").то(
комментарий("Сценарий не смог отправить запрос на добавление строчки в гугл таблице. Код {http_code}, ответ {result}")+
сообщениеПользователю.сШаблоном("Спасибо за участие, но что-то сломалось и я не могу связаться с центром.")+
завершить
)+
// Финальные отбивки и завершение сценария
комментарий("Добавил строчку в гугл таблицу.")+
сообщениеПользователю.сШаблоном("Все записал. Большое спасибо за участие!")+
завершить |