@GTwhite

Aiogram 'Can\'t parse keyboard button: field «request_contact» must be of type boolean' в чем проблема?

from aiogram import Bot, Dispatcher, executor, types
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher.filters import Text
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
from content import token
import messages

Token_API = token

storage = MemoryStorage()
bot = Bot(Token_API)
dp = Dispatcher(bot=bot,
                storage=storage)


def keyboard_work() -> ReplyKeyboardMarkup:
    kb = ReplyKeyboardMarkup(resize_keyboard=True)
    kb.add(KeyboardButton('Начать'))

    return kb


def keyboard_menu() -> ReplyKeyboardMarkup:
    kb = ReplyKeyboardMarkup(resize_keyboard=True)
    kb.add(KeyboardButton('т'))
    kb.insert(KeyboardButton('тил'))
    kb.row(KeyboardButton('Когда', 'Помощь'))
    kb.add(KeyboardButton('Обратная связь'))

    return kb


def keyboard_telephone() -> ReplyKeyboardMarkup:
    kb = ReplyKeyboardMarkup(resize_keyboard=True)
    kb.add(KeyboardButton('Поделиться номером', request_contact=True))

    return kb


@dp.message_handler(Text(equals='Старт', ignore_case=True))
async def start_message(message: types.Message):
    await message.answer(text=messages.telephone_message,
                         reply_markup=keyboard_telephone())


@dp.message_handler(content_types=types.message.ContentType.CONTACT)
async def check_phone_number(message: types.Message):
    if message.contact.user_id == message.from_user.id:
        await message.answer(text='Вот и все готово, для начала работы бота нажмите на кнопку "Начать"',
                             reply_markup=keyboard_work())
    else:
        await message.answer('Не ваш номер!!!')


@dp.message_handler(Text(equals='Начать', ignore_case=True))
async def start_work(message: types.Message):
    await message.answer(text=messages.start_message)
    await message.answer(text=messages.help_command)
    await message.answer(text=messages.email_command,
                         reply_markup=keyboard_menu())

executor.start_polling(dp,
                       skip_updates=True)


Не могу понять в чем проблема, если обновлять клаву через add с 1 кнопкой, то все работает, но вот в такой структуре не хочет, есть у кого какие решения?
  • Вопрос задан
  • 151 просмотр
Решения вопроса 1
@Wispik
kb.row(KeyboardButton('Когда', 'Помощь'))
вот тут ошибка, надо так:
kb.row(KeyboardButton('Когда'), KeyboardButton('Помощь'))
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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