Не выводятся inline кнопки в боте. Aiogram

Рейтинг: 0Ответов: 1Опубликовано: 11.06.2023

Бот должен брать информацию из БД и выводить ее в кнопках. Текст и callback_data обязательно должен содержать смайлы. В переменной type у меня хранится инфа со смайлами. Вот мой код:

    result = db.Clients.select_product_for_sale()

    if result:

        button_list = []
        keyboard = InlineKeyboardMarkup(row_width=1)
        for row in result:

            city = row[0]
            type = row[1]
            place = row[2]
            price = row[3]

            button_text = f'{type} - {price} $' 
            callback_text = f'{type} {city} {place} {price}'

            button_list.append(InlineKeyboardButton(text=button_text, callback_data=f"product_name {callback_text}"))

        button_list.append(InlineKeyboardButton(text="⬅️ Назад", callback_data=f"button5"))
        keyboard.add(*button_list)

        await bot.send_message(user_id, "Что вас интересует?", reply_markup=keyboard)

Проблема в том, что callback_data не хочет обрабатывать данные со смайлами, я попробовал в callback_data убрать type и оставить type в text и все вывелось без проблем, но мне обязательно нужна инфа со смайлами в callback, может возможно это как-то исправить ?

Выскакивает такая ошибка: введите сюда описание изображения

Ответы

▲ 0

Как оказалось, у callback_data есть ограничение в 64 байта, у меня там помимо type хранится еще куча переменных, поэтому и происходили ошибки