Telegram内联键盘部分选项无响应及Sheet更新匹配问题求助
开发Telegram机器人遇到的两个问题
问题1:内联键盘仅DYS1选项可正常响应,其他选项共存时失效
内联键盘中除DYS1外的其他选项(如DDY)点击无响应,单独注释DY相关代码时DDY功能正常,但两者共存就失效。曾怀疑是return editMessageText(chat_id, contents.callback_query.message.message_id,"Reply to this message eg: 5, Earn from MEP MMRC! OR -1, Used on 10/5/23");语句或括号问题,但DYS1功能正常,该猜测不成立。
问题2:测试代码可触发返回文本,但无法确保用户回复时更新对应Google Sheet
测试代码能正常触发返回文本,但无法保证用户回复时能更新对应的Google Sheet。
原代码片段
if (text == "/updateoffs") { var keyboard = { "inline_keyboard": [ [{ "text": "DYS1", 'callback_data': 'dysone' }], [{ "text": "DDY", 'callback_data': 'ddy' }], [{ "text": "ACC", 'callback_data': 'acc' }], [{ "text": "4 IN 1", 'callback_data': 'fourinone' }], [{ "text": "PFM IC", 'callback_data': 'pfmic' }], [{ "text": "EXIT IC", 'callback_data': 'exitic' }], [{ "text": "COURSE IC", 'callback_data': 'courseic' }], [{ "text": "CO PA", 'callback_data': 'copa' }] ] }; return sendMessage(chat_id, "Select your role to update your current OFFs:", keyboard); } else if (contents.callback_query) { UrlFetchApp.fetch(telegramUrl + "/answerCallbackQuery?callback_query_id=" + String(contents.callback_query.id)); var chat_id = contents.callback_query.message.chat.id; var data = contents.callback_query.data; } if (data == 'dysone') { return editMessageText(chat_id, contents.callback_query.message.message_id, "Reply to this message eg: 5, Earn from MEP MMRC! OR -1, Used on 10/5/23"); } //!TODO : ALL USER TO UPDATE OFFS BY KEYING IN NUMBER AND REMARKS if (contents.message.reply_to_message && contents.message.reply_to_message.from.id == 6294332173) { var dateNow = new Date; var formattedDate = dateNow.getDate() + "/" + (dateNow.getMonth() + 1); var item = text.split(","); // MAIN SHEET var offtracker = SpreadsheetApp.openById(ssId).getSheetByName("DY"); offtracker.getRange(4, 1).setValue([formattedDate]); offtracker.getRange(4, 2).setValue(item[0]); offtracker.getRange(4, 3).setValue(item[1]); // histracker.appendRow([formattedDate],item[0],item[1]); offtracker.insertRows(5, 1); var copylist = offtracker.getRange('A4:C4').getValues(); // then insert data into blank row (5) offtracker.getRange('A5:C5').setValues(copylist); return sendMessage(chat_id, "OFF TRACKER HAS BEEN UPDATED FOR DYS1!"); } // else if(contents.callback_query){ // UrlFetchApp.fetch(telegramUrl + "/answerCallbackQuery?callback_query_id=" + String(contents.callback_query.id)); // var chat_id = contents.callback_query.message.chat.id; // var data = contents.callback_query.data; if (data == 'ddy') { return editMessageText(chat_id, contents.callback_query.message.message_id, "Reply to this message eg: 5, Earn from MEP MMRC! OR -1, Used on 10/5/23"); } //!TODO : ALL USER TO UPDATE OFFS BY KEYING IN NUMBER AND REMARKS if (contents.message.reply_to_message && contents.message.reply_to_message.from.id == 6294332173) { var dateNow = new Date; var formattedDate = dateNow.getDate() + "/" + (dateNow.getMonth() + 1); var item = text.split(","); // MAIN SHEET var offtracker = SpreadsheetApp.openById(ssId).getSheetByName("DDY"); offtracker.getRange(4, 1).setValue([formattedDate]); offtracker.getRange(4, 2).setValue(item[0]); offtracker.getRange(4, 3).setValue(item[1]); // histracker.appendRow([formattedDate],item[0],item[1]); offtracker.insertRows(5, 1); var copylist2 = offtracker.getRange('A4:C4').getValues(); // then insert data into blank row (5) offtracker.getRange('A5:C5').setValues(copylist2); return sendMessage(chat_id, "OFF TRACKER HAS BEEN UPDATED FOR DDY!"); } }
测试代码片段
if(data == 'dysone'){ return editMessageText(chat_id, contents.callback_query.message.message_id,"Reply to this message eg: 5, Earn from MEP MMRC! OR -1, Used on 10/5/23"); } if(data == 'ddy'){ return editMessageText(chat_id, contents.callback_query.message.message_id,"DDY"); } // handle dysone case if(contents.message.reply_to_message && contents.message.reply_to_message.from.id == 6294332173){ var dateNow = new Date; var formattedDate = dateNow.getDate() + "/" + (dateNow.getMonth() + 1); var item = text.split(","); // MAIN SHEET var offtracker = SpreadsheetApp.openById(ssId).getSheetByName("DY"); offtracker.getRange(4, 1).setValue([formattedDate]); offtracker.getRange(4, 2).setValue(item[0]); offtracker.getRange(4, 3).setValue(item[1]); // histracker.appendRow([formattedDate],item[0],item[1]); offtracker.insertRows(5, 1); var copylist = offtracker.getRange('A4:C4').getValues(); // then insert data into blank row (5) offtracker.getRange('A5:C5').setValues(copylist); return sendMessage(chat_id, "OFF TRACKER HAS BEEN UPDATED FOR DYS1!"); } // handle ddy case if(contents.message.reply_to_message && contents.message.reply_to_message.from.id == 6294332173 && text == "DDY"){ var dateNow = new Date; var formattedDate = dateNow.getDate() + "/" + (dateNow.getMonth() + 1); var item = text.split(","); // MAIN SHEET var offtracker2 = SpreadsheetApp.openById(ssId).getSheetByName("DDY"); offtracker2.getRange(4, 1).setValue([formattedDate]); offtracker2.getRange(4, 2).setValue(item[0]); offtracker2.getRange(4, 3).setValue(item[1]); // histracker.appendRow([formattedDate],item[0],item[1]); offtracker2.insertRows(5, 1); var copylist2 = offtracker2.getRange('A4:C4').getValues(); // then insert data into blank row (5) offtracker2.getRange('A5:C5').setValues(copylist2); return sendMessage(chat_id, "OFF TRACKER HAS BEEN UPDATED FOR DDY!"); } }
内容的提问来源于stack exchange,提问作者Sk My
相关产品推荐
相关产品推荐

