Почему ввод данных работает через группу, а не через ЛС бота в Aiogram при условии проверки is_chat_admin=True
from aiogram import types, executor, Dispatcher, Bot
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
from aiogram.dispatcher.filters.state import State, StatesGroup
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher.dispatcher import FSMContext
from sqlite_db_pizza import db_start_pizza, create_profile, read_profile
from sqlite_db_personal import db_start_personal, create_profile_adm
from config import TOKENPZ
storage = MemoryStorage()
bot = Bot(TOKENPZ)
dp = Dispatcher(bot, storage=storage)
class GetAdminStates(StatesGroup):
admin_id = State()
name_adm = State()
photo_adm = State()
@dp.message_handler(commands=['moderator'], is_chat_admin=True)
async def get_admin_id(message: types.Message, state: FSMContext):
await GetAdminStates.admin_id.set()
await bot.send_message(message.from_user.id, 'Полученние ID')
async with state.proxy() as data:
data['admin_id'] = message.from_user.id
await bot.send_message(message.from_user.id,
'Отправьте свое ФИО <b>(если оно не совпадает, вы будете удалены с БД)</b>',
parse_mode='HTML')
await GetAdminStates.next()
@dp.message_handler(state=GetAdminStates.name_adm)
async def get_admin_name(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['name_adm'] = message.text
await bot.send_message(message.from_user.id,
'Отправьте свою фотографию <b>(если она не совпадает, вы будете удалены с БД)</b>',
parse_mode='HTML')
await GetAdminStates.next()
@dp.message_handler(state=GetAdminStates.photo_adm)
async def get_admin_photo(message: types.Message, state: FSMContext):
async with state.proxy() as data:
data['photo_adm'] = message.photo[0].file_id
await bot.send_message(message.from_user.id, 'Вы получили доступ править меню\nЧтобы создать пиццу /create')
# await create_profile_adm(state)
await bot.send_message(message.from_user.id, 'Данные занесены в БД')
await state.finish()
Проблема в том, что я не могу реализовать так, чтобы данные которые отправляет пользователь в личные сообщения бота воспринимались, почему то бот реагирует только на сообщения, отправленные в группу, возможно это из-за условии в handlers: is_chat_admin=True . Но если его убрать, появляется ещё одна проблема, как сделать проверку на администратора группы, и чтобы никто посторонний её не мог получить
Источник: Stack Overflow на русском