Вот работа бота:
Бот заносит данные клиента в data['']
Отправляет их менеджеру вместе с кнопками (def send_message)
После того как менеджер нажал кнопку "Принять", клиенту должно отправиться сообщение "Вас записали".
Проблема в том что бот не может найти data['user_id'] в обработчике def register_client
from aiogram import F, Router
from aiogram import Dispatcher, Bot
from aiogram import types
from aiogram.utils.keyboard import InlineKeyboardBuilder
from aiogram.fsm.state import StatesGroup, State
from aiogram.fsm.context import FSMContext
router = Router()
dp = Dispatcher()
class Reg(StatesGroup):
name = State()
number = State()
strigka = State()
time = State()
confirmation = State()
user_id = State()
@router.callback_query(F.data == 'next')
async def one(callback: types.CallbackQuery, state: FSMContext):
await state.set_state(Reg.name)
await callback.message.answer('Как мне тебя называть?')
@router.message(Reg.name)
async def reg_name(message: types.Message, state: FSMContext):
await state.update_data(name=message.text)
await state.set_state(Reg.number)
await message.answer('Напишите Ваш номер телефона')
@router.message(Reg.number)
async def reg_number(message: types.Message, state: FSMContext):
await state.update_data(number=message.text)
await state.update_data(user_id=message.from_user.id)
await state.set_state(Reg.strigka)
await message.answer('Напишите стрижку')
@router.message(Reg.strigka)
async def reg_strigka(message: types.Message, state: FSMContext):
await state.update_data(strigka=message.text)
await state.set_state(Reg.time)
await message.answer("Напишите удобное время")
@router.message(Reg.time)
async def reg_time(message: types.Message, state: FSMContext):
await state.update_data(time=message.text)
data = await state.get_data()
builder = InlineKeyboardBuilder()
builder.add(types.InlineKeyboardButton(text='Да', callback_data='yes'))
builder.add(types.InlineKeyboardButton(text='Нет', callback_data='not'))
await message.answer(
f'{data["name"]}\n{data["number"]}\n{data["strigka"]}\n{data["time"]}',
reply_markup=builder.as_markup()
)
@router.callback_query(F.data == 'yes')
async def send_message(callback: types.CallbackQuery, state: FSMContext, bot: Bot):
data = await state.get_data()
builder = InlineKeyboardBuilder()
builder.add(types.InlineKeyboardButton(text='Принять', callback_data='register'))
builder.add(types.InlineKeyboardButton(text='Отклонить', callback_data='Note_register'))
await bot.send_message(
chat_id=1662615318,
text=f'Это приходит Никите:\n{data["name"]}\n{data["number"]}\n{data["strigka"]}\n{data["time"]}')
await bot.send_message(chat_id=1662615318,text=f'{data["user_id"]}', reply_markup=builder.as_markup())
await callback.answer() # Обработка callback
@router.callback_query(F.data == 'register')
async def register_client(callback: types.CallbackQuery, state: FSMContext, bot: Bot):
data = await state.get_data()
await bot.send_message(chat_id=data["user_id"], text='Вас записали!')
await callback.answer()
await callback.message.answer(f'Ваш chat_id: {data["user_id"]}')
await state.clear()