简体   繁体   中英

Telegram bot inline keyboard via Node.JS

I'm using the node-telegram-bot-api module, How can I make my keyboard to inline Keyboard? This is my code:

bot.onText(/^\/start$/, function (msg) {
    const opts = {
        reply_to_message_id: msg.message_id,
        reply_markup: {
            resize_keyboard: true,
            one_time_keyboard: true,
            keyboard: [ ['Level 1'] ]
        }
    };

    bot.sendMessage(msg.chat.id, "I'm a test robot", opts);
});
["

I answered a question similar to this link: How can create menu for telegram bot in bot father?<\/a><\/i>

keyboard: [["uno :+1:"],["uno \ud83d\udc4d", "due"],["uno", "due","tre"],["uno", "due","tre","quattro"]]

In your case the solution would be:

const opts = {
        reply_to_message_id: msg.message_id,
        reply_markup: JSON.stringify({
        inline_keyboard: 
        [
            [{text: 'Level 1'}],
        ]
    })
  };

You could use: https://github.com/RealPeha/telegram-keyboard

The library if focused on Telegraf, but you could use without it.

You just need to provide an InlineKeyboardButton object instead of plain text in your keyboard array of arrays.

bot.onText(/^\/start$/, function (msg) {
    const opts = {
        reply_to_message_id: msg.message_id,
        reply_markup: {
            resize_keyboard: true,
            one_time_keyboard: true,
            keyboard: [
              [{text: 'Level 1'}],
            ],
        }
    };

    bot.sendMessage(msg.chat.id, "I'm a test robot", opts);
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM