я создаю телеграмм бота и мне приходится использовать огромное количество кнопок в телеграмме, и по нажатию кнопок, они должны заменяться другими кнопками, но по всей видимости callback_query переполняется и выскакивает ошибка
Cause exception while process update id=XXX by bot id=XXX
TelegramBadRequest: Telegram server says - Bad Request: BUTTON_DATA_INVALID
def creat_builder(new_text_ing):
builder = []
if new_text_ing:
text_ing = new_text_ing
text_ing.append("Назад")
else:
text_ing = select_database() # получаю массив текста с базы данных
text_ing.append("Закончить")
print(text_ing)
for i in text_ing:
if i == "Закончить":
builder.append([(types.InlineKeyboardButton(text=i,callback_data="end"))])
elif i == "Назад":
builder.append([(types.InlineKeyboardButton(text=i,callback_data="close"))])
else:
if int(i[1]) == 1:
builder.append([(types.InlineKeyboardButton(text='✅ ' +i[0], callback_data=f"category_{i[0]}_{i[1]}"))])
else:
builder.append([(types.InlineKeyboardButton(text=i[0],callback_data=f"category_{i[0]}_{i[1]}"))])
return builder
def get_keyboard(new_text_ing = None):
keyboard = types.InlineKeyboardMarkup(inline_keyboard=creat_builder(new_text_ing))
return keyboard
@dp.message(Command("category"))
async def cmd_category(message: types.Message):
await message.answer("Выберете нужную вам категорию",
reply_markup=get_keyboard())
global x
x = message.message_id
@dp.callback_query(F.data.startswith("category_"))
async def send_random_value(callback_query: types.CallbackQuery):
action = callback_query.data.split("_")[1]
action_2 = int(callback_query.data.split("_")[2])
link =[]
text_ing = select_database()
for i in text_ing:
if i[0] == action:
link = i[2]
text_ing = select_database(link)# получаю массив текста с базы данных
print(text_ing)
await bot.edit_message_reply_markup( # тут возникает ошибка
callback_query.message.chat.id,
callback_query.message.message_id,
reply_markup=get_keyboard(text_ing)
)