Как сделать бота на aiogram который по username находит его айди?

Для создания бота на основе aiogram, который по заданному username будет находить пользователя по его username и возвращать его айди, вам потребуется следующий код:

1. Установите библиотеку aiogram с помощью pip:

pip install aiogram

2. Импортируйте необходимые компоненты из библиотеки aiogram:

from aiogram import Bot, Dispatcher, types
from aiogram.contrib.fsm_storage.memory import MemoryStorage

3. Создайте объекты бота и диспетчера:

bot = Bot(token="YOUR_BOT_TOKEN")
storage = MemoryStorage()
dp = Dispatcher(bot, storage=storage)

4. Определите функцию-обработчик для команды /get_user_id, которая будет принимать username пользователя в качестве аргумента:

async def get_user_id(username: str):
    try:
        user = await bot.get_chat(username)
        user_id = user.id
        return f"User ID: {user_id}"
    except Exception as e:
        return f"Error: {e}"

5. Определите функцию-обработчик для команды /start, которая будет вызывать функцию-обработчик для команды /get_user_id:

@dp.message_handler(commands=["start"])
async def start(message: types.Message):
    await message.reply("Please enter a username to get user ID:")
    await dp.register_next_step_handler(message, process_username_step)

async def process_username_step(message: types.Message):
    username = message.text
    await message.reply(get_user_id(username))

6. Определите функцию запуска бота:

async def on_startup(dp):
    await bot.send_message(chat_id="YOUR_CHAT_ID", text="Bot has been started")
  
if __name__ == "__main__":
    dp.loop.run_until_complete(on_startup(dp))
    dp.run_polling()

В коде выше замените YOUR_BOT_TOKEN на токен вашего бота, а YOUR_CHAT_ID на айди вашего чата.

После выполнения этих шагов, ваш бот будет готов к использованию. Вызовите команду /start, введите username пользователя в ответном сообщении, и бот вернет айди этого пользователя. Если произойдет ошибка, бот сообщит о ней.