@Mr-CEO
Не стою на месте.

Как принять имя в регистрации в телеграм боте?

Я хочу принять имя которое пользователь пропишет как порсто текст, но не знаю как прописать хендлер и для приема простого текста, если просто хендлер без фильтров пропишу то получится как ЭХО

@dp.message_handler(text=' Русский')
async def russian(message: types.Message):
    await message.answer('Пожалуйста, перед заказом пройдите регистрацию:\n'
                         'Введите имя:'

Чтобы когда пользователь пропишет свое имя чтобы другой хендлер поймал это и продолжил дело но чтобы не работало как эхо.
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 1
@cd7c5dd4b6879e284b
дальше сам я думаю разберёшься
from aiogram import *
from aiogram.types import *
from aiogram.dispatcher import *
from aiogram.utils.markdown import hlink
from aiogram.dispatcher.filters.state import *
from aiogram.contrib.fsm_storage.memory import *

storage = MemoryStorage()
bot = Bot(token='***************************', parse_mode=ParseMode.HTML)
dp = Dispatcher(bot, storage=MemoryStorage())

class Input(StatesGroup):
	waiting_name = State()

@dp.message_handler(lambda message: message.text == "Русский")
async def russian(message: types.Message):
	await Input.waiting_name.set()
	await bot.send_message(message.from_user.id, f'Пожалуйста, перед заказом пройдите регистрацию:\nВведите имя:')

@dp.message_handler(state=Input.waiting_name)
async def waiting_name(message: types.Message, state: FSMContext):
	if message.text == "отмена":
		await bot.send_message(message.from_user.id, f'отмена заказа')
		await state.finish()
	else:
		name = message.text
		await Input.waiting_name.set()
		await bot.send_message(message.from_user.id, f'Ваше имя: {name}')


if __name__ == '__main__':
	executor.start_polling(dp)


62a4c42aefc30927154279.png
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
16 мая 2024, в 23:36
200000 руб./за проект
16 мая 2024, в 23:10
12000 руб./за проект