@Nika980

Как вывести более десяти Inline кнопок?

Пишу бота для телеграм, вывела 10 кнопок с названиями городов и то, что будет приходить пользователю при их нажатии, но больше 10 уже не могу. Мне надо 18 городов, но на 11 кнопке выдает ошибку:

2021-12-08 14:37:09,572 (__init__.py:690 MainThread) ERROR - TeleBot: "A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: can't parse inline keyboard button: Text buttons are unallowed in the inline keyboard"

Вот код:

import telebot;
from telebot import types;
bot = telebot.TeleBot('210***0343:AAFmK1GKAY************iTpY1eljQ')
@bot.message_handler(content_types=['text'])
def get_text_messages(message):
    if message.text == "/start":
        bot.send_message(message.from_user.id, f"Привет,{message.from_user.first_name} рады Вас снова видеть в нашем магазине")
        markup = types.InlineKeyboardMarkup()
        button1 = types.InlineKeyboardButton('ОМСК ', callback_data='1')
        button2 = types.InlineKeyboardButton('КАЛАЧИНСК ', callback_data='2')
        markup = types.InlineKeyboardMarkup()
        button3 = types.InlineKeyboardButton('ТАТАРСК ', callback_data='3')
        button4 = types.InlineKeyboardButton('КОРМИЛОВКА ', callback_data='4')
        button5 = types.InlineKeyboardButton('ИСИЛЬКУЛЬ ', callback_data='5')
        button6 = types.InlineKeyboardButton('ТАВРИЧЕСКОЕ ', callback_data='6')
        markup = types.InlineKeyboardMarkup()
        button7 = types.InlineKeyboardButton('ТАРА ', callback_data='7')
        button8 = types.InlineKeyboardButton('ЛЮБИНО ', callback_data='8')
        markup = types.InlineKeyboardMarkup()
        button9 = types.InlineKeyboardButton('НАЗЫВАЕВСК ', callback_data='9')
        button10 = types.InlineKeyboardButton('ТЮКАЛИНСК ', callback_data='10')
        markup = types.InlineKeyboardMarkup()
        button11 = types.InlineKeyboardButton('БОЛЬШЕРЕЧЬЕ ', callbsck_data='11')
        button12 = types.InlineKeyboardButton('КРУТАЯ ГОРКА ', callback_data='12')
        markup.row(button1, button2)
        markup.row(button3, button4)
        markup.row(button5, button6)
        markup.row(button7, button8)
        markup.row(button9, button10)
        markup.row(button11, button12)
        bot.send_message(message.from_user.id, f"Выберите ГОРОД", reply_markup=markup)
@bot.callback_query_handler(func=lambda call: True)
def query_handler(call):

    bot.answer_callback_query(callback_query_id=call.id)
    answer = ''
    if call.data == '1':
        answer = 'Выберите ТОВАР'
    if call.data == '2':
        answer = 'Выберите ТОВАР'
        bot.send_message(call.message.chat.id, answer)
    if call.data == '3':
        answer = 'Выберите ТОВАР'
    if call.data == '4':
        answer = 'Выберите ТОВАР'
        bot.send_message(call.message.chat.id, answer)
    if call.data == '5':
        answer = 'Выберите ТОВАР'
    if call.data == '6':
        answer = 'Выберите ТОВАР'
        bot.send_message(call.message.chat.id, answer)
    if call.data == '7':
        answer = 'Выберите ТОВАР'
    if call.data == '8':
        answer = 'Выберите ТОВАР'
        bot.send_message(call.message.chat.id, answer)
    if call.data == '9':
        answer = 'Выберите ТОВАР'
    if call.data == '10':
        answer = 'Выберите ТОВАР'
        bot.send_message(call.message.chat.id, answer)
    if call.data == '11':
        answer = 'Выберите ТОВАР'
    if call.data == '12':
        answer = 'Выберите ТОВАР'
        bot.send_message(call.message.chat.id, answer)
bot.polling(none_stop=True, interval=0)
  • Вопрос задан
  • 1513 просмотров
Пригласить эксперта
Ответы на вопрос 1
@twistfire92
Python backend developer
Внимательно смотрим на строку с добавлением 11-й кнопки

button11 = types.InlineKeyboardButton('БОЛЬШЕРЕЧЬЕ ', callbsck_data='11')

Внимательнее с очепятками.
А что ниже по коду у вас творится??? Ужас же адовый!!! Зачем столько повторений?
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы