aiogram диспетчер для другого пользователя

В чём суть: мне необходимо, чтобы бот, работая в одном чате, отправил сообщение во второй, после чего начал обрабатывать запросы уже второго пользователя. Далее отрывок из моего кода. Здесь бот после работы с пользователем 1 отправляет сообщение в другой чат:

@dp.message_handler(lambda message: message.text == "Отправить", state=Post.waiting_for_approve)
async def final_options(message: types.Message, state: FSMContext):
    keyboard = types.InlineKeyboardMarkup(row_width=1)
    keyboard.add(types.InlineKeyboardButton(text="Опубликовать", callback_data="publish"))
    keyboard.add(types.InlineKeyboardButton(text="Отклонить", callback_data="deny"))
    media_group = types.MediaGroup()
    with open('admin_id_file') as a:
        admin_id = a.read()
    user_data = await state.get_data()
    for x in user_data['post_id']:
        if user_data['post_id'].index(x) == 0:
            media_group.attach_photo(x, caption=user_data['caption'])
        else:
            media_group.attach_photo(x)
    await bot.send_media_group(media=media_group, chat_id=admin_id)
    await message.answer(f"Объявление было отправлено пользователем @{user_data['user_id']}", reply_markup=keyboard)

После этого бот должен дождаться ответа уже пользователя 2, которому он отправил сообщение:

@dp.callback_query_handler(text="publish")
async def publish(call: types.CallbackQuery, state: FSMContext):
    print('got!')
    with open('group_id') as a:
        group_id = a.read()
    media_group = types.MediaGroup()
    user_data = await state.get_data()
    for x in user_data['post_id']:
        if user_data['post_id'].index(x) == 0:
            media_group.attach_photo(x, caption=user_data['caption'])
        else:
            media_group.attach_photo(x)
    print(media_group)
    await call.bot.send_media_group(media=media_group, chat_id=group_id)
    await call.answer(text="Объявление было опубликовано", show_alert=True)
    await state.finish()

Однако диспетчер не улавливает нажатие инлайн-кнопки, видимо потому что ждет его от первого пользователя (по крайней мере, мне так кажется). Прописывание user_id второго пользователя в диспетчере почему-то тоже не помогло.

Вопрос - как настроить диспетчер на другой чат?


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