Как получить ID пользователя в мидлвэйр?

from aiogram import types
from aiogram.dispatcher.middlewares import BaseMiddleware

class CheckSubscriptionMiddleware(BaseMiddleware):
    async def on_pre_process_update(self, update: types.Update, data: dict):
        user = types.User.get_current()
        print(user)

хотел получить id пользователя, но вместо этого возвращает None, есть ли какой-либо способ получить id, заранее спасибо


Ответы (3 шт):

Автор решения: oleksandrigo

Думаю так

async def on_pre_process_update(self, update: types.Update, data: dict):
    user_id = update.from_user.id
→ Ссылка
Автор решения: d3en89

Вот код как можно получить id пользователя который пытается запустить существующий хендлер

from aiogram import types
from aiogram.dispatcher.middlewares import BaseMiddleware

class User_id(BaseMiddleware):
     async def get_id(self, msg: types.Message, data: dict):
         print(msg.from_user.id)

Что бы вообще по всем сообщениям отображать id пользовтеля можно создать пустой хендлер

dp = Dispatcher(TOKEN)
@dp.message_handler()
async def all_mes(msg: types.Message):
    pass
→ Ссылка
Автор решения: evgenidzze
class AuthMiddleware(BaseMiddleware):
    async def on_pre_process_update(self, update: types.Update, data: dict):
        msg = getattr(update, 'callback_query') or getattr(update, 'message')
        user_id = msg.from_user.id
→ Ссылка