// configuration var apiToken = "deleted"; var appUrl = "deleted"; var apiUrl = "https://api.telegram.org/bot"+apiToken; var user_sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Users");
// register async function New_User(user,chat_id) { LastRow = user_sheet.getMaxRows() let reg_check = "0" for (i=1; i if(user_sheet.getRange(i, 2).getDisplayValue() == chat_id){ reg_check = "1" send("Вы уже зарегистрированы!", chat_id); } } if(reg_check == "0"){ send("Введите имя:", chat_id) // После этого юзер отвечает и его ответ записывается в переменную name user_sheet.getRange('A'+ LastRow).setFormula('=row()-1'); user_sheet.getRange('B'+ LastRow).setValue(chat_id); user_sheet.getRange('C'+ LastRow).setValue(user); user_sheet.getRange('D'+ LastRow).setValue(text); user_sheet.insertRowsAfter(LastRow, 1); send("Вы успешно зарегистрированы!", chat_id); } };
// Listener function doPost(e) { let update = JSON.parse(e.postData.contents); //нам нужен только тип "сообщение" if (update.hasOwnProperty('message')) { let msg = update.message; let chat_id = msg.chat.id; let text = msg.text; let user = msg.from.username; if (text == "/start") { New_User(user,chat_id); } } }
// handle webhook function send (msg, chat_id) { let payload = { 'method': 'sendMessage', 'chat_id': String(chat_id), 'text': msg, 'parse_mode': 'HTML' } let data = { "method": "post", "payload": payload } UrlFetchApp.fetch('https://api.telegram.org/bot' + apiToken + '/', data); }
// set webhook function setWebhook(){ var url = apiUrl + "/setwebhook?url="+appUrl; var res = UrlFetchApp.fetch(url).getContentText(); Logger.log(res); } function doGet(e){ return ContentService.createTextOutput("Method GET not allowed"); }