Size: a a a

2020 July 29

А

Айван in aiogram [ru]
Pavel Kotov
Всем привет, помогите разобраться с машинной состояния, по нажатию на инлайнбаттон, отправляется сообщение с предложением ввести номер телефона. После того как номер телефона был введен пользователем я хочу что бы вызывлось следующее сообщение от бота. На данный момент реализация следующая:

@dp.message_handler(state=auth)
@dp.callback_query_handler(lambda c: c.data == 'phone_number_auth')
async def call_back_for_phone_number_button(callback_query: types.CallbackQuery):
   state = dp.current_state()
   await bot.answer_callback_query(callback_query.id)
   await bot.send_message(callback_query.from_user.id, 'Введите номер телефона привяззаный к аккаунту: ')
   await state.set_state(auth)


@dp.message_handler(state=auth, content_types=ContentType.TEXT)
@dp.callback_query_handler(lambda c: c.data == 'phone_number_auth')
async def call_back_for_phone_number_message(message: types.Message):
   ms = message.text
   bot = Bot()
   bot.tg_auth_enter_phone_number(ms)

Вопрос, как правильно реализовать машину состояния в таком случае?
Зачем тут по два обработчика на одну функцию?
Убери у button_handler'a dp.message_handler и наоборот.
Замени lambda c:… на text=""
(Почему вы вечно лямбду то берёте?!)
Устнови dp.callback handler'у state когда ты ожидаешь нажатия кнопки
источник

PK

Pavel Kotov in aiogram [ru]
Айван
Зачем тут по два обработчика на одну функцию?
Убери у button_handler'a dp.message_handler и наоборот.
Замени lambda c:… на text=""
(Почему вы вечно лямбду то берёте?!)
Устнови dp.callback handler'у state когда ты ожидаешь нажатия кнопки
Спасибо, попробую
источник

PK

Pavel Kotov in aiogram [ru]
Айван
Зачем тут по два обработчика на одну функцию?
Убери у button_handler'a dp.message_handler и наоборот.
Замени lambda c:… на text=""
(Почему вы вечно лямбду то берёте?!)
Устнови dp.callback handler'у state когда ты ожидаешь нажатия кнопки
"(Почему вы вечно лямбду то берёте?!) "
Этот способ был указан в одном из уроков который я нашел в гугле. вот ссылка https://surik00.gitbooks.io/aiogram-lessons/content/chapter5.html
источник

Б

Бан in aiogram [ru]
Айван
Зачем тут по два обработчика на одну функцию?
Убери у button_handler'a dp.message_handler и наоборот.
Замени lambda c:… на text=""
(Почему вы вечно лямбду то берёте?!)
Устнови dp.callback handler'у state когда ты ожидаешь нажатия кнопки
Потому что не все могут перепрыгнуть с привычных им лямбд🥺
источник

А

Айван in aiogram [ru]
Pavel Kotov
"(Почему вы вечно лямбду то берёте?!) "
Этот способ был указан в одном из уроков который я нашел в гугле. вот ссылка https://surik00.gitbooks.io/aiogram-lessons/content/chapter5.html
3.6 python. Может тогда такого ещё не было
источник

P

P1zzdat in aiogram [ru]
почаны есть гайд по аио
источник

P

P1zzdat in aiogram [ru]
?
источник

PK

Pavel Kotov in aiogram [ru]
Айван
3.6 python. Может тогда такого ещё не было
т.е сейчас можно сделать так: @dp.callback_query_handler(text="phone_number_auth", state=auth) ?
источник

Forevka ÐΞV... in aiogram [ru]
P1zzdat
почаны есть гайд по аио
по чему?
источник

P

P1zzdat in aiogram [ru]
аиограму
источник

А

Айван in aiogram [ru]
Pavel Kotov
т.е сейчас можно сделать так: @dp.callback_query_handler(text="phone_number_auth", state=auth) ?
Да, по-идее
источник

Forevka ÐΞV... in aiogram [ru]
нет
источник

Е

Егор in aiogram [ru]
P1zzdat
почаны есть гайд по аио
Aio - async input output
источник

PK

Pavel Kotov in aiogram [ru]
Айван
Да, по-идее
AttributeError: 'CallbackQuery' object has no attribute 'text'
вот такая ошибка у меня
источник

D•

Dan • Captain in aiogram [ru]
P1zzdat
почаны есть гайд по аио
Нет
источник

А

Айван in aiogram [ru]
источник

А

Айван in aiogram [ru]
Pavel Kotov
AttributeError: 'CallbackQuery' object has no attribute 'text'
вот такая ошибка у меня
Всё ещё не исправил?
источник

PK

Pavel Kotov in aiogram [ru]
Айван
Всё ещё не исправил?
нет
источник

А

Айван in aiogram [ru]
А… какой python?
источник

PK

Pavel Kotov in aiogram [ru]
Айван
А… какой python?
3.7
источник