Бот Telegram: текст кнопки не читается - PullRequest
0 голосов
/ 12 декабря 2018

Я разработал бота для телеграмм, который реагирует на ввод пользователя. Но когда бот посылает пользователю кнопки, текст кнопки не читается.

Ниже приведен скриншот чата: enter image description here

Я думаю, что телеграмма не изменяет размер кнопки, когда количество кнопок больше или длина текста кнопки больше.

Я использую приведенный ниже код для отправки кнопок:

buttonoptions.forEach(buttonElement => {

    var buttonText = buttonElement;
    if (buttonText.length > 30) {
        buttonText = buttonText.substring(0, 27);
        buttonText = buttonText + "...";
    }

    var buttonItem = {
        text: buttonText,
        callback_data: JSON.stringify({
            'type': 'button',
            'text': buttonText
        })
    }

    buttons.push(buttonItem);
});

var message = {
    parse_mode: 'Markdown',
    reply_markup: JSON.stringify({
        inline_keyboard: [buttons]
    })
};

//send message code

Так есть ли способ заставить бота телеграммы показать полный текст кнопки?

1 Ответ

0 голосов
/ 13 декабря 2018

Telegram Bot API принимает массив массивов кнопок в качестве значения поля inline_keyboard.Каждый массив представляет собой ряд кнопок на встроенной клавиатуре.

Итак, у вас много кнопок в одной строке, текст выглядит усеченным.Чтобы избежать этого, вы можете разместить кнопки в нескольких рядах.

Например:

const options = {
  reply_markup: JSON.stringify({
      inline_keyboard: [
          [{ text: 'Button 1', callback_data: '1' }],
          [{ text: 'Button 2', callback_data: 'data 2' }],
          [{ text: 'Button 3', callback_data: 'text 3' }]
      ]
   })
};

В результате получается три строки с одной кнопкой в ​​каждой.Я считаю, что текст не будет усечен.

Ура!

...