• (aiogram) Как запретить доступ к инлайн кнопке другим пользователям кроме указанного?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    return user1
    вот это вообще не понял

    Помещаете username пользователей в callback_data. В обработчике достаете их username из data и сравниваете с нажавшим кнопку.

    @dp.message_handler(commands="ruletkaid")
    async def inlinebtn(message: types.Message):
        user1 = message.get_args()
        user2 = message.from_user.username
        keyboard = types.InlineKeyboardMarkup()
        keyboard.add(types.InlineKeyboardButton(text="Принять", callback_data=f"accept_{user1}:{user2}"))
        keyboard.add(types.InlineKeyboardButton(text="Не принимать", callback_data=f"decline_{user1}:{user2}"))
        await message.answer(user1 + ', вас вызывает на дуэль ' + user2, reply_markup=keyboard)
    
    
    @dp.callback_query_handler(lambda call: call.data.startswith('accept_'))
    async def accept_duel(call: types.CallbackQuery):
    
        user1, user2 = call.data.replace('accept_', '', 1).split(':')
    
        if call.from_user.username != user1:
            await call.answer(text="Не тебе адресовано.", show_alert=True)


    Не проверял, но, по идее, работает
    Ответ написан
    Комментировать