1. Причины ошибки при импортировании router из другого файла в проекте aiogram 3 могут быть следующими:
- Неправильное указание пути к файлу, из которого происходит импорт.
- Отсутствие нужных модулей или зависимостей в проекте.
- Неправильное написание кода в файле, из которого происходит импорт.
2. Для отправки сообщения в личное сообщение конкретному пользователю без ошибок в коде бота Telegram, можно использовать следующий код на основе aiogram:
```python
from aiogram import Bot, Dispatcher, types
from aiogram.contrib.middlewares.logging import LoggingMiddleware
from aiogram.types import ParseMode
from asyncio import get_event_loop
API_TOKEN = 'YOUR_API_TOKEN'
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)
dp.middleware.setup(LoggingMiddleware())
user_id = 'USER_ID' # ID пользователя, которому нужно отправить сообщение
@dp.message_handler(commands=['start'])
async def send_message(message: types.Message):
data = {
"name": "Иван",
"number": "+12345678"
}
await bot.send_message(user_id, f'Спасибо, регистрация завершена. \n Имя: {data["name"]} \n Номер: {data["number"]}', parse_mode=ParseMode.HTML)
if __name__ == '__main__':
loop = get_event_loop()
loop.create_task(dp.start_polling())
loop.run_forever()
```
Замените `YOUR_API_TOKEN` на ваш токен бота Telegram и `USER_ID` на ID пользователя, которому хотите отправить сообщение. После запуска бота и отправки команды `/start`, указанному пользователю будет отправлено личное сообщение с данными `data`.