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 кнопкой, то все работает, но вот в такой структуре не хочет, есть у кого какие решения?