from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.utils import executor
import os, json, string
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton, ReplyKeyboardRemove
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters.state import State, StatesGroup
from aiogram.dispatcher.filters import Text
TOKEN = “”
storage = MemoryStorage()
bot = Bot(token=TOKEN)
dp = Dispatcher(bot, storage=storage)
async def on_startup(_):
print('Бот вышел в онлайн')
#---------------------############ BUTTON ############ ---------------------#
btn_load_name = KeyboardButton('/Name')
btn_check_name = KeyboardButton('/Узнать_имя')
kb_load_name = ReplyKeyboardMarkup(resize_keyboard=True)
kb_check_name = ReplyKeyboardMarkup(resize_keyboard=True)
kb_load_name.row(btn_load_name)
kb_check_name.row(btn_check_name)
#---------------------############ CLIENT ############ ---------------------#
@dp.message_handler(commands=['start', 'help'])
async def start(message: types.Message):
await bot.send_message(message.from_user.id, f'Здравствуйте, {message.from_user.first_name} {message.from_user.last_name}', reply_markup=kb_load_name)
await mesage.delete()
# @dp.message_handler(commands=['help'])
# async def help(message: types.Message):
# await bot.send_message(mesage.from_user.id, 'За помощью обращайтесь по номеру телефоену')
@dp.message_handler(commands=['Узнать_имя'])
async def check_name(message: types.Message):
await message.reply(str(data['name']))
#---------------------############ ADMIN ############ ---------------------#
class FSMadmin(StatesGroup):
name = State()
@dp.message_handler(commands=['name'], state=None)
async def cm_start(message: types.Message):
await FSMadmin.name.set()
await bot.send_message(message.from_user.id, f'{message.from_user.first_name} {message.from_user.last_name}, введите имя')
@dp.message_handler(state=FSMadmin.name)
async def load_name_bot(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['name'] = message.text
await bot.send_message(message.from_user.id, 'Имя занесено',reply_markup=kb_check_name)
await state.finish()
#---------------------############ OTHER ############ ---------------------#
executor.start_polling(dp, skip_updates=True, on_startup=on_startup)
При запуске команды /name всё работает корректно.Записываю имя, всё срабатывает,выдаёт: «Имя занесено»,как и указано в коде. Но при команде /Узнать имя, бот выдаёт «Имя занесено». Проверял словарь data, туда записывается значение «Имя занесено». Что не так?