kshnkvn
@kshnkvn
t.me/kshnkvn

Почему не создается больше одной кнопки с pyTelegramBotAPI?

Код отправки клавиатуры:
@bot.message_handler(content_types=['text'])
def send_text(message):
    query = api_query(message.text)
    if query is not None:
        keyboard = types.InlineKeyboardMarkup()
        for item in query:
            print(item)
            keyboard.add(types.InlineKeyboardButton(text=item, callback_data=item))
        bot.send_message(message.from_user.id, text='Вот, что я нашел:', reply_markup=keyboard)
    else:
        bot.send_message(message.from_user.id, 'Ой, мне ничего не удалось найти. Ты точно ввел(а) правильное название?')

В query хранится поисковая выдача, например:
['Чернобыль: Зона отчуждения (2014)', 'Чернобыльские джунгли. 20 лет без человека (2008)', 'Чернобыль (2019)']

При попытке выполнить код ошибка:
telebot.apihelper.ApiException: A request to the Telegram API was unsuccessful. The server returned HTTP 400 Bad Request. Response body:
[b'{"ok":false,"error_code":400,"description":"Bad Request: BUTTON_DATA_INVALID"}']

При чем если в query всего 1 элемент, то отправка кнопки происходит без проблем.
Как правильно в моем случае мне необходимо сформировать клавиатуру?
  • Вопрос задан
  • 268 просмотров
Решения вопроса 1
kshnkvn
@kshnkvn Автор вопроса, куратор тега Python
t.me/kshnkvn
Собственно, как всегда - дурачек невнимательно прочитал документацию и побежал на тостер:
callback_data String Optional. Data to be sent in a callback query to the bot when button is pressed, 1-64 bytes

Код рабочий, только в callback_data я превысил лимит API.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
23 февр. 2020, в 17:36
400 руб./в час
23 февр. 2020, в 17:19
1000 руб./в час
23 февр. 2020, в 16:47
10000 руб./за проект