Callback_query.data в Телеграм бот - не отвечает на нажатие кнопки (Google apps script)

Не могу сравнить значение callback_query.data от нажатия кнопки на inline клавиатуре.
Для дебага - вывожу в таблицу и вижу, что callback_query.data при нажатии приходит верное. Но дальше условие if не сравнивает callback_query.data с заданным мной и не выводит клавиатуру второго уровня.

Конкретно скрипт в этой таблице - выдает только "Ура работает!", А callback_data == 'option1' и т.д. - не распознает.

Что неправильно делаю?

Вот таблица со скриптом: https://docs.google.com/spreadsheets/d/1SE0ZNhA1_B3ige2YxA4bZKahEuH5M6Jk0Bs2NQIbWXE/edit?usp=sharing

botSettings.gs

//это нужно заполнить
const botToken = '##############################################';
const webAppUrl = 'https://script.google.com/macros/s/AKfycbzQwN42JEBtMnH3IARCwMxRT9eect3qsLIKVOc-oJuuLT6_G_fwbxgEb8RTKO4kLdZu/exec';
const ssID = '############################################';
///Logger = BetterLog.useSpreadsheet(ssID); 

//это уже не нужно
const telegramUrl = 'https://api.telegram.org/bot' + botToken;

function setWebhook() {
  var response = UrlFetchApp.fetch(telegramUrl + '/setWebhook?url=' + webAppUrl);
  Logger.log(response.getContentText());
}

function getMe() {  
  let response = UrlFetchApp.fetch("https://api.telegram.org/bot" + botToken + "/getMe");
  console.log(response.getContentText());
}

function deleteWebhook() {
  var response = UrlFetchApp.fetch(telegramUrl + '/deleteWebhook?url=' + webAppUrl);
  Logger.log(response.getContentText());
}

function send() {
  let chat_id = 11111111; 
  let text = "Привет! Как дела22?";
  sendMessage(chat_id, text);
}

function answerCallbackQuery(callback_query, message) {
  UrlFetchApp.fetch(telegramUrl + '/answerCallbackQuery?callback_query_id=' + callback_query + '&text=' + message + '&show_alert=1&cache_time=0');
}

function getUpdates() {
  UrlFetchApp.fetch(telegramUrl + '/getUpdates', {
                    method: 'post',
                    contentType: 'application/json'
                    //payload: JSON.stringify({...})
})
}



function sendMessage(chatId, message) {
  UrlFetchApp.fetch(telegramUrl + '/sendMessage', {
                    method: 'post',
                    contentType: 'application/json',
                    payload: JSON.stringify({
                    chat_id: chatId,
                    text: message,
                    parse_mode: 'Markdown'
                    })
})
}

function sendMessageKeyboard(chatId, message, keyBoard){
  UrlFetchApp.fetch(telegramUrl + '/sendMessage', {
                    method: 'post',
                    contentType: 'application/json',
                    payload: JSON.stringify({
                    chat_id: chatId,
                    text: message,
                    reply_markup: {
                    keyboard: keyBoard,
                    resize_keyboard: true,
                    one_time_keyboard: true
                    }
                    })
})
}

function sendMessageInlineMenu(chatId, message, inlineKeyboard){
  UrlFetchApp.fetch(telegramUrl + '/sendMessage', {
                    method: 'post',
                    contentType: 'application/json',
                    payload: JSON.stringify({
                    chat_id: chatId,
                    text: message,
                    reply_markup: {
                    inline_keyboard: inlineKeyboard
                    }
                    })
})
}

function sendMessageKeyboardRemove(chatId, message){
  UrlFetchApp.fetch(telegramUrl + '/sendMessage', {
                    method: 'post',
                    contentType: 'application/json',
                    payload: JSON.stringify({
                    chat_id: chatId,
                    text: message,
                    reply_markup: {
                    remove_keyboard: true
                    }
                    })
})
}

doPost.gs

/*
ниже – пример сообщения, которое отправит бот нам как только ему что-то напишут
это – объект, в коде мы его парсим, достаём имя отправителя, никнейм, само сообщение и записываем в наш лог

 {"updateid":000000000,
   "message":{"messageid":00,
     "from":{"id":000000000,"isbot":false,"firstname":"<your name>","lastname":"<your surname>","languagecode":"en"},
     "chat":{"id":000000000,"firstname":"<your name>","lastname":"<your name>","type":"private"},
     "date":0000000000,
     "text":"<текст сообщения>",
     "entities":{"offset":0,"length":11,"type":"bot_command"} // в случае если это команда
   }
 }

*/

function doPost(e) {
  try {
    var contents = JSON.parse(e.postData.contents),
      contents_s = JSON.stringify(contents);

    SpreadsheetApp.openById(ssID).appendRow([new Date(), 'doPost', contents_s]);
    if (contents.message) {

      const msg = contents.message,
        chatType = msg.chat.type,
        messageText = (msg.text || '') + (msg.caption || ''), //или само сообщение или подпись к файлу / фото
        user = msg.from.hasOwnProperty('username') ? msg.from.username : '',
        userId = msg.from.id,
        userFirstName = msg.from.first_name,
        userLastName = msg.from.last_name,
        chatId = msg.chat.id,
        src_msg = msg.hasOwnProperty('reply_to_message') ? msg.reply_to_message.text : '',
        src_sender = msg.hasOwnProperty('reply_to_message') ? msg.reply_to_message.from.username : '';

      if (messageText == "/start") {
        var title = "Заголовок/вопрос меню 1 уровня";
        var inlineKeyboard = [
          [{ "text": "Опция1", 'callback_data': 'option1' }],
          [{ "text": "Опция2", 'callback_data': 'option2' }]
        ];
        sendMessageInlineMenu(chatId, title, inlineKeyboard);
        return;
      }

      const checkPm = chatType == 'private',
        chat = checkPm ? '' : msg.chat.username,   //если отправлено не ЛС, то добавляем username чата
        chatTitle = checkPm ? '' : msg.chat.title; //и название чата

      const checkFile = msg.hasOwnProperty('document'),
        fileId = checkFile ? msg.document.file_id : msg.hasOwnProperty('photo') ? msg.photo[1].file_id : '',
        fileMime = checkFile ? msg.document.mime_type : '',
        fileName = checkFile ? msg.document.file_name : '';

      var answer = "нет данных";

      //==========================================================================================================================


      sendMessage(chatId, JSON.stringify(e));
      return;
    }

    if (contents.callback_query) {
      var callback_query_id = contents.callback_query.id;
      var callback_userId = contents.callback_query.from.id;
      var callback_data = contents.callback_query.data;

      answerCallbackQuery(callback_query_id, "Ура работает!"); // по факту нихера не работает)))
      //  Logger.log(contents.callback_query.data);
      SpreadsheetApp.openById(ssID).appendRow([new Date(), 'doPost - callback_query.data', contents.callback_query.data]);

      sendMessage(contents_s);
      if (callback_data == 'option1') {
        sendMessage(callback_userId, "Ответ на пункт меню 1 уровня");

      } else if (callback_data == 'option2') {
        var title = "Заголовок/вопрос меню 2 уровня";
        var inlineKeyboard = [
          [{ 'text': 'Подопция1', 'callback_data': 'suboption1' }],
          [{ 'text': 'Подопция2', 'callback_data': 'suboption2' }]
        ];
        sendMessageInlineMenu(chatId, title, inlineKeyboard);

      } else if (callback_data == 'suboption1' || callback_data == 'suboption2') {
        sendMessage(chatId, 'Ответ на пункт меню 2 уровня');
      }

      // Если отправлено сообщение а не callback
    }
    SpreadsheetApp.openById(ssID).appendRow([new Date(), 'doPost', 'nothing']);
  } catch (err) {
    console.error(err.stack, err.message);
    SpreadsheetApp.openById(ssID).appendRow([new Date(), err.stack, err.message]);
  }
}

(В этом вопросе ответ тоже не работает - Callback в Телеграм боте на Google apps script)


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