如何在电报中使用内联键盘创建分页
How to create pagination with inline keyboard in telegram
我正在创建一个 Telegram 机器人机智 Node.js 我正在使用 node-telegram-bot-api 模块。
我当前的问题是:
使用内联键盘创建分页。
在文档 here 中,有一个我需要的有趣示例。
对于外观,我必须使用方法 editMessageText 但是对于更新内联键盘我需要传输参数 inline_message_id。不幸的是,我无法理解该怎么做。
我将非常感谢任何更新内联键盘的示例以及它如何在 this example 中发布。
您需要通过 editMessageText
:
更新分页
var bookPages = 100;
function getPagination( current, maxpage ) {
var keys = [];
if (current>1) keys.push({ text: `«1`, callback_data: '1' });
if (current>2) keys.push({ text: `‹${current-1}`, callback_data: (current-1).toString() });
keys.push({ text: `-${current}-`, callback_data: current.toString() });
if (current<maxpage-1) keys.push({ text: `${current+1}›`, callback_data: (current+1).toString() })
if (current<maxpage) keys.push({ text: `${maxpage}»`, callback_data: maxpage.toString() });
return {
reply_markup: JSON.stringify({
inline_keyboard: [ keys ]
})
};
}
bot.onText(/\/book/, function(msg) {
bot.sendMessage(msg.chat.id, 'Page: 25', getPagination(25,bookPages));
});
bot.on('callback_query', function (message) {
var msg = message.message;
var editOptions = Object.assign({}, getPagination(parseInt(message.data), bookPages), { chat_id: msg.chat.id, message_id: msg.message_id});
bot.editMessageText('Page: ' + message.data, editOptions);
});
我正在创建一个 Telegram 机器人机智 Node.js 我正在使用 node-telegram-bot-api 模块。
我当前的问题是:
使用内联键盘创建分页。
在文档 here 中,有一个我需要的有趣示例。
对于外观,我必须使用方法 editMessageText 但是对于更新内联键盘我需要传输参数 inline_message_id。不幸的是,我无法理解该怎么做。
我将非常感谢任何更新内联键盘的示例以及它如何在 this example 中发布。
您需要通过 editMessageText
:
var bookPages = 100;
function getPagination( current, maxpage ) {
var keys = [];
if (current>1) keys.push({ text: `«1`, callback_data: '1' });
if (current>2) keys.push({ text: `‹${current-1}`, callback_data: (current-1).toString() });
keys.push({ text: `-${current}-`, callback_data: current.toString() });
if (current<maxpage-1) keys.push({ text: `${current+1}›`, callback_data: (current+1).toString() })
if (current<maxpage) keys.push({ text: `${maxpage}»`, callback_data: maxpage.toString() });
return {
reply_markup: JSON.stringify({
inline_keyboard: [ keys ]
})
};
}
bot.onText(/\/book/, function(msg) {
bot.sendMessage(msg.chat.id, 'Page: 25', getPagination(25,bookPages));
});
bot.on('callback_query', function (message) {
var msg = message.message;
var editOptions = Object.assign({}, getPagination(parseInt(message.data), bookPages), { chat_id: msg.chat.id, message_id: msg.message_id});
bot.editMessageText('Page: ' + message.data, editOptions);
});