reply_markup в ботах телеграммы (узел js) - PullRequest
0 голосов
/ 14 февраля 2019

Я пытаюсь написать бот-телеграмму, используя узел js, и отправляю клавиатуру пользователю:

var keyboards = {  
    main_menu: {
        reply_markup: {
            keyboard: [
                [{text: "Cards"}, {text: "Progress"}],
                [{text: "Warning"}, {text: "Help"}]
            ]
        }
    }
};
bot.onText(/\/keyboard/, (msg) => {
    console.log(keyboards.main_menu);
    bot.sendMessage(msg.from.id, "Main menu", keyboards.main_menu);
    console.log(keyboards.main_menu);
});

И вот что у меня на консоли:

{ reply_markup: { keyboard: [ [Array], [Array] ] } }
{ reply_markup:
   '{"keyboard":[[{"text":"Cards"},{"text":"Progress"}],[{"text":"Warning"}, {"text":"Help"}]]}',
  chat_id: 276984822,
  text: 'Main menu' }

Так что я не знаю почему, но после отправки клавиатуры Telegram добавляет chat_id и text к моей клавиатуре.Что мне делать?

1 Ответ

0 голосов
/ 16 февраля 2019

Я узнал, как решить эту проблему - вы должны отправить клавиатуру следующим образом:

bot.sendMessage(msg.from.id, "Main menu", {reply_markup: keyboards.main_menu});

И на самом деле следующий вариант также будет работать:

bot.sendMessage(msg.from.id, "Main menu", {reply_markup: keyboards.main_menu.reply_keyboard});

...