Помогите правильно подключить ConversationHandler

Я учусь создавать телеграм ботов с помощью библиотеки python-telegram-bot. Нужна помощь опытных, как правильно создать ConversationHandler?

    dp = updater.dispatcher

    conv_handler = ConversationHandler(
        entry_points=[CommandHandler('start', start)],

        states={

            INFORMATION: [CommandHandler('start', start), CallbackQueryHandler(master, pattern='master', pass_user_data=True),
                        CallbackQueryHandler(contact, pattern='contacts', pass_user_data=True),
                        CallbackQueryHandler(types_massage, pattern='types_massage', pass_user_data=True),
                        CallbackQueryHandler(home_page, pattern='home', pass_user_data=True)],

            SING_TYPES: [CommandHandler('start', start), CallbackQueryHandler(sing, pattern='sing_up', pass_user_data=True)],

            SING_DATE: [CommandHandler('start', start), CallbackQueryHandler(klassik, pattern='klass', pass_user_data=True),
                        CallbackQueryHandler(lechebny, pattern='lech', pass_user_data=True), CallbackQueryHandler(medovy, pattern='med', pass_user_data=True),
                        CallbackQueryHandler(limfo, pattern='limfo', pass_user_data=True), CallbackQueryHandler(anti, pattern='anti', pass_user_data=True)],

            SING_TIME: [CommandHandler('start', start), CallbackQueryHandler(select, pass_user_data=True)],

            SING_NAME: [CommandHandler('start', start), CallbackQueryHandler(time_12, pattern='12', pass_user_data=True),
                        CallbackQueryHandler(time_14, pattern='14', pass_user_data=True), CallbackQueryHandler(time_16, pattern='16', pass_user_data=True)],

            SING_PHONE: [CommandHandler('start', start), MessageHandler(Filters.text, sing_name, pass_user_data=True)],

            SING_USER: [CommandHandler('start', start), MessageHandler(Filters.contact, sing_contact, pass_user_data=True) or 
            MessageHandler(Filters.text, sing_contact)],

        },

        fallbacks=[CallbackQueryHandler(okay, pattern='okay'), CallbackQueryHandler(recording, pattern='recording')],
        per_message=True
    )

    dp.add_handler(conv_handler)

    dp.add_error_handler(error)

При таком использовании выводит ошибку:

UserWarning: If 'per_message=True', all entry points and state handlers must be 'CallbackQueryHandler', since no other handlers have a message context.
  warnings.warn("If 'per_message=True', all entry points and state handlers"

Что не правильно?


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