Не срабатывает обработчик кнопки в других чатах aiogram, python
Всем привет, может кто сталкивался , ботом по чатам отправляется сообщение с заказом и кнопкой принять, как обрабатывать эту кнопку от разных юзеров? Ниже код, срабатывает только если подтверждаешь заявку в текущем чате, обработка с других чатов не работает. Подскажите куда копать.
@dp.message_handler(commands=['pub'])
async def pub_r(message: types.Message):
ADMIN = 69727700000
mid = message.chat.id
if ADMIN == mid:
await message.answer("Сколько работников нужно?\n(Подсказка: 2 )")
await UserState.col.set()
@dp.message_handler(state=UserState.col)
async def g_col(message: types.Message, state: FSMContext):
await state.update_data(col=message.text)
await message.answer("Введите адрес заявки?\n(Подсказка: Мариупольское шс. д.27а )")
await UserState.next()
@dp.message_handler(state=UserState.ad)
async def g_ad(message: types.Message, state: FSMContext):
await state.update_data(ad=message.text)
await message.answer("Что будем делать?\n(Подсказка: описать задачу )")
await UserState.next()
@dp.message_handler(state=UserState.task)
async def g_task(message: types.Message, state: FSMContext):
await state.update_data(task=message.text)
await message.answer("Когда необходимо начать работы?\n(Подсказка: в течении часа, либо указать дату и время )")
await UserState.next()
@dp.message_handler(state=UserState.start)
async def g_start(message: types.Message, state: FSMContext):
await state.update_data(start=message.text)
await message.answer("Оплата?\n(Подсказка: 235.00 р./час, минималка 2 часа )")
await UserState.next()
@dp.message_handler(state=UserState.cash)
async def g_finall(message: types.Message, state: FSMContext):
await state.update_data(cash=message.text)
data = await state.get_data()
await message.answer(f" Предварительный просмотр заявки \n\n"
f"Всего работников нужно: {data['col']}\n"
f"Адрес: {data['ad']}\n"
f"Что будем делать: {data['task']}\n"
f"Начало работ: {data['start']}\n"
f"Оплата: {data['cash']}",reply_markup = InlineKeyboardMarkup(inline_keyboard=[[
InlineKeyboardButton(text="Заполнить заново", callback_data='edit'),
InlineKeyboardButton(text="Публикация", callback_data="pub")]]))
print(data)
await UserState.next()
@dp.callback_query_handler(lambda c: c.data == 'edit',state=UserState.clback)
async def edit(call: types.CallbackQuery,state: FSMContext):
await call.message.answer('Сколько работников нужно?')
await UserState.col.set()
@dp.callback_query_handler(lambda c: c.data == 'pub',state=UserState.clback)
async def pub(call: types.CallbackQuery,state: FSMContext):
markup = InlineKeyboardMarkup(row_width=1)
item1 = InlineKeyboardButton("Принять заказ", callback_data='zakaz')
item2 = InlineKeyboardButton("Правила", callback_data='2')
markup.add(item1, item2)
data = await state.get_data()
await call.message.answer('Заявка отправлена')
query_chat_id = await chat_id_selectq()
for chats in query_chat_id:
if chats[1] != 0:
await bot.send_message(chats[0],f"Всего работников нужно:{data['col']}\nАдрес: {data['ad']}\nЧто делать:{data['task']}\nНачало работ:{data['start']}\nОплата:{data['cash']}",reply_markup = markup)
#await state.finish()
await UserState.next()
@dp.callback_query_handler(lambda c: c.data == 'zakaz',state=UserState.zakaz)
async def pub(call: types.CallbackQuery,state: FSMContext):
markup = InlineKeyboardMarkup(row_width=1)
item1 = InlineKeyboardButton("Одобрить", callback_data='approve')
item2 = InlineKeyboardButton("Отклонить", callback_data='reject')
markup.add(item1, item2)
query_user = await user_profile(chat_id=call.message.chat.id)
print(query_user)
await bot.send_message(6972770000,f"Привет, я готов взять заказ\nИмя:{query_user[1]}\nФамилия: {query_user[2]}\nДата рождения:{query_user[3]}\nТелефон:{query_user[4]}",reply_markup = markup)
await state.finish()
#await UserState.next()
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True, on_startup=on_startup)
Источник: Stack Overflow на русском