Есть бот, который должен выполнять запросы, только для определенных людей или чата, что бы другие в телеге не смогли им пользоваться. Так скажем приватный бот.
Пробовал через router.message.filter но если писать условие через or то бот запускается, но условие для фильтрации запросов не работает, то есть метод "id" работает у всех.
Потом сделал:
router.message.filter(F.chat.type == ChatType.SUPERGROUP, F.from_user.id.in_({42, 1000, 123123}))
и заработало, но будет ли это правильно или есть другие правильные решения, так как надо будет не только по этим условия фильтровать кому можно будет пользоваться а кому нет
import asyncio
from aiogram import Router, Bot, Dispatcher, F
from aiogram.client.default import DefaultBotProperties
from aiogram.types import Message
from aiogram.filters import Command, CommandObject
from aiogram.enums import ParseMode, ChatType
router = Router()
router.message.filter(F.chat.type == ChatType.SUPERGROUP, F.from_user.id == 00000000 or F.from_user.id == 111111111)
@router.message(Command("id"))
async def id(message: Message, bot: Bot):
await bot.send_message(message.chat.id, f"ID {message.from_user.full_name}: {message.from_user.id}")
async def main():
TOKEN = open("TOKEN.txt").read()
bot = Bot(TOKEN, default=DefaultBotProperties(parse_mode=ParseMode.HTML))
dp = Dispatcher()
dp.include_router(router)
await bot.delete_webhook(True)
await dp.start_polling(bot)
if name == 'main':
asyncio.run(main())