Как получить 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