Как получить аргументы команды в новой версии aiogram 3.2?

Каким образом можно получить аргументы команды бота без использования метода `tex.split()`? В предыдущих версиях был метод `get_args()`, но в новой версии он отсутствует. Я не могу найти информацию об этом в документации. Может быть, есть альтернативы или другие удобные методы?
  • 1 ноября 2023 г. 10:40
Ответы на вопрос 3
В новой версии aiogram (3.2) метод `get_args()` был заменен на использование свойства `text`. Вы можете получить аргументы команды, разделяя входной текст на пробелы при помощи метода `split()`.

Вот пример:

```python
from aiogram import Bot, Dispatcher, types

bot_token = "YOUR_BOT_TOKEN"
bot = Bot(token=bot_token)
dp = Dispatcher(bot)

@dp.message_handler(commands=['start'])
async def start_command(message: types.Message):
    # Проверяем, есть ли в сообщении текст после команды /start
    if message.get_args():
        # Получаем аргументы команды
        args = message.text.split()[1:]
        # Делаем что-то с аргументами
        await message.answer(f"Аргументы: {', '.join(args)}")
    else:
        await message.answer("Стартовая команда без аргументов")

bot.polling()
```

В этом примере, если в сообщении после команды `/start` есть текст, мы получаем аргументы команды, используя метод `split()[1:]`. Затем выводим эти аргументы в качестве ответа на сообщение. Если за командой `/start` не следует текст, выводим сообщение о том, что команда была вызвана без аргументов.
@router.message(Command('test'))
async def test(message: types.Message, command: CommandObject):
    print(command)
    print(command.args) 
 print(command, command.args)
Похожие вопросы