Передача сообщения другому пользователю в aiogram
Я хочу, чтобы после ввода команды пользователем (например, Reg
) появилось сообщение "Введите сообщение". После ввода сообщения, оно должно куда-то записаться и отправиться другому пользователю в личные сообщения.
Пример:
@router.message(F.text == 'reg')
async def reg(message: Message):
await message.answer('Введите сообщение')
@router.message()
async def reg(message: Message, bot: Bot):
username = message.from_user.username
await bot.send_message(id, 'Сообщение от @{username}: {сообщение})
Ответы (1 шт):
Автор решения: ZxNuClear
→ Ссылка
Минимальный рабочий пример:
class Msg(StatesGroup):
get_message = State()
@router.message(Command('start'))
async def cmd_start(message: Message, state: FSMContext):
await message.answer('Введите сообщение')
await state.set_state(Msg.get_message)
@router.message(Msg.get_message)
async def get_mess(message: Message, state: FSMContext, bot: Bot):
await message.answer('Спасибо, ваше сообщение отправлено. Для отправки нового сообщения используйте команду /start')
await state.clear()
await bot.send_message(chat_id=ТУТ_ТВОЙ_ID, text=f"Сообщение от @{message.chat.username}:\n{message.text}")
# Удаление "мусорных" сообщений
@router.message(F.text)
async def clr_msg(message: Message):
await Message.delete(message)
добавил еще удаление "мусорных" сообщений, отправляемых без нажатия команды /start
, чтобы бот их просто удалял. Ну и не забудьте импортировать все необходимые модули