Для отправки сообщения по имени пользователя (username) в aiogram 3, вам нужно сначала получить пользовательский ID (userid) по его имени. Это можно сделать, используя метод `bot.get_chat(username)`, который вернет объект Chat с информацией о пользователе, включая userid. Далее, вы можете использовать полученный userid для отправки сообщения этому пользователю с помощью метода `bot.send_message(userid, text)`.
Пример кода:
```python
from aiogram import Bot, Dispatcher, types
from aiogram import executor
from aiogram.types import ParseMode
bot = Bot(token="YOUR_TOKEN")
dp = Dispatcher(bot)
@dp.message_handler(commands=['send_to_user'])
async def send_to_user(message: types.Message):
username = message.get_args()
chat = await bot.get_chat(username)
user_id = chat.id
text = "Привет, это сообщение отправлено тебе по имени пользователя!"
await bot.send_message(user_id, text)
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
```
Этот код создает бота, который отправляет сообщение пользователю по его имени пользователя. Когда вы отправляете команду `/send_to_user USERNAME`, бот получает userid по имени пользователя и отправляет ему сообщение "Привет, это сообщение отправлено тебе по имени пользователя!".