@m0s3y

Как решить данную ошибку с inline кнопками?

сделал бота, который будет авто принимать в канал и писать пользователям, но inline кнопки не могу подключить, выдаёт ошибку
ile "pydantic\main.py", line 341, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for InlineKeyboardMarkup
inline_keyboard
  field required (type=value_error.missing)

Помогите решить, за ранее спасибо
Код снизу

Main:

from aiogram import Bot, Dispatcher, F, types
from aiogram.types import ChatJoinRequest
import logging
import contextlib
import asyncio
import time
from markups import * 

CHANNEL_ID = -**********
ADMIN_ID = *********


async def approve_request(chat_join: ChatJoinRequest, bot: Bot):
    msg = 'Здравствуй, чтобы получить файл пройдите тест'
    await bot.send_message(chat_id=chat_join.from_user.id, text=msg)
    time.sleep(1)
    await bot.send_message(chat_id=chat_join.from_user.id, text='Какова ваша профессия?', reply_markup=professii)
    await chat_join.approve()


async def start():
    logging.basicConfig(level=logging.DEBUG,
                        format='%(asctime)s - [%(levelname)s] - %(name)s - (%(filename)s).%(funcName)s(%(lineno)d) - %(message)s')

    bot = Bot('**********')
    dp = Dispatcher()
    dp.chat_join_request.register(approve_request, F.chat.id ==CHANNEL_ID)


    try:
        await dp.start_polling(bot, allowed_updates=dp.resolve_used_update_types())
    except Exception as ex:
        logging.error(f'[Exception] - {ex}', exc_info=True)
    finally:
        await Bot.session.close()


if __name__ == '__main__':
    with contextlib.suppress(KeyboardInterrupt, SystemExit):
        asyncio.run(start())


кнопки:

from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup

first = InlineKeyboardButton(text='Дизайнер', callback_data='1')
second = InlineKeyboardButton(text='Строитель', callback_data='2')
third = InlineKeyboardButton(text='Прораб/Компания', callback_data='3')
fourth = InlineKeyboardButton(text='Частное лицо', callback_data='4')
professii = InlineKeyboardMarkup(row_width=2).add(first, second, third, fourth)
  • Вопрос задан
  • 3537 просмотров
Пригласить эксперта
Ответы на вопрос 1
Frostealth
@Frostealth
Backend Developer
1. Смотрим текст ошибки
pydantic.error_wrappers.ValidationError: 1 validation error for InlineKeyboardMarkup
inline_keyboard
  field required (type=value_error.missing)

2. Смотрим внимательно доку
3. Profit

спойлер

class aiogram.types.inline_keyboard_markup.InlineKeyboardMarkup(*,
    inline_keyboard: List[List[InlineKeyboardButton]],  // required
    **extra_data: Any
)

Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы