2 回答

TA贡献1884条经验 获得超4个赞
问题:是否有更有效的方法来满足上述要求?
有!Telegram Inlinekeyboardbutton提供,callback_data因此您可以轻松区分回调!
而不是使用回调文本,降低字符并检查按钮值
var text = contents.message.text;
var name = contents.message.from.first_name + " " + contents.message.from.last_name;
var sResponse = telegramBotMachine( chat_id, text, name );
if ( sUpperText.substr( 0, 4 ) === "MENU" ) {
menu( chat_id );
} else if
....
你应该使用callback_data你已经在keyboard函数中提供的,但只是不使用!像这样的东西;
function telegramBotMachine( chat_id, callbackData, name ) {
switch (callbackData) {
case 'menu':
menu( chat_id );
break;
case 'admin':
adminReport( chat_id );
break;
case 'squad':
squadReport( chat_id );
break;
// ...
default:
sendFormattedMessage( chat_id, "Test", "HTML", "false", "false" );
break;
}
}
function doPost(e) {
var contents = JSON.parse(e.postData.contents);
var chat_id = contents.message.chat.id;
// Check for callback_query
if (typeof contents.callback_query !== 'undefined') {
var callbackData = contents.callback_query.data; // admin, squad, ...
var name = contents.message.from.first_name + " " + contents.message.from.last_name;
var sResponse = telegramBotMachine( chat_id, callbackData, name );
}
}

TA贡献1752条经验 获得超4个赞
不确定我是否得到了您想要实现的目标,但看起来您可以使用 inline_keyboard 中的回调数据来跟踪用户单击按钮后的操作。
your_bot.on('callback_query', (callbackData) => {
if (callbackData.data === 'value1') {
// some action
}
else if (callbackData.data === 'value2') {
// some action
}
}
用户单击按钮后,您将获得“callback_query”并使用“on”方法添加事件“callback_query”。然后,您从 inline_keyboard 的 callback_data 中获取数据并考虑操作取决于您收到的数据。这是有关 callbackQuery 对象的信息。
添加回答
举报