var telegramToken = '7872456097:AAGNPT2gb7Yp84OOGFZNakQuQ5XNd8KPkG4';
var telegramUrl = 'https://api.telegram.org/bot' + telegramToken;
var webAppUrl = 'https://script.google.com/macros/s/AKfycbxUreoRVLyNs4Im3CYWO66Hr4bkq4ojt6OU8qyq34AsoGX9PAIU1PuXZ_NmTTZOZNJ-/exec';
function doPost(e) {
try {
var contents = JSON.parse(e.postData.contents);
var chatId, message;
if (contents.message) {
chatId = contents.message.chat.id;
message = contents.message.text;
} else if (contents.callback_query) {
chatId = contents.callback_query.from.id;
message = contents.callback_query.data;
answerCallbackQuery(contents.callback_query.id);
}
if (message.toLowerCase() === '/start') {
sendWelcomeMessage(chatId);
} else {
checkAnswer(chatId, message);
}
} catch (error) {
Logger.log("Error: " + error.toString());
}
}
function sendWelcomeMessage(chatId) {
var welcomeText = "Добро пожаловать! Я бот для тестирования знаний. Чтобы начать, просто ответьте на первый вопрос.";
sendMessage(chatId, welcomeText);
sendQuestion(chatId);
}
function sendQuestion(chatId) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Questions');
var data = sheet.getDataRange().getValues();
var randomIndex = Math.floor(Math.random() * (data.length - 1)) + 1;
var question = data[randomIndex];
var questionText = question[0];
var options = [
[{text: question[1], callback_data: '1'}],
[{text: question[2], callback_data: '2'}],
[{text: question[3], callback_data: '3'}]
];
sendMessageWithButtons(chatId, questionText, options);
PropertiesService.getScriptProperties().setProperty('correctAnswer', question[4]);
}
function checkAnswer(chatId, message) {
var correctAnswer = PropertiesService.getScriptProperties().getProperty('correctAnswer');
if (message === correctAnswer) {
sendMessage(chatId, 'Правильно! 🎉');
} else {
sendMessage(chatId, 'Неправильно. Попробуйте снова!');
}
sendQuestion(chatId);
}
function sendMessage(chatId, text) {
var url = telegramUrl + '/sendMessage?chat_id=' + chatId + '&text=' + encodeURIComponent(text);
UrlFetchApp.fetch(url);
}
function sendMessageWithButtons(chatId, text, options) {
var payload = {
method: 'post',
contentType: 'application/json',
payload: JSON.stringify({
chat_id: chatId,
text: text,
reply_markup: {
inline_keyboard: options
}
})
};
UrlFetchApp.fetch(telegramUrl + '/sendMessage', payload);
}
function answerCallbackQuery(callbackQueryId) {
var url = telegramUrl + '/answerCallbackQuery?callback_query_id=' + callbackQueryId;
UrlFetchApp.fetch(url);
}
Откройте по ссылке или QR бот @iMakeBot, нажмите кнопку Старт/Start.
Следуйте инструкциям бота.