• Как воссоздать инлайн кнопки из базы данных?

    @TemaGerb Автор вопроса
    Сергей П, В том то и проблема, что я не нашёл ни одной документации как это можно сделать
    Написано
  • Как воссоздать инлайн кнопки из базы данных?

    @TemaGerb Автор вопроса
    Я просил объяснить или дать где можно с этим ознакомится. Твои очевидно ни к чему
    Написано
  • Как сделать что бы при нажатии кнопки Баланс, бот спрашивал сумму пополнения и использовал ее?

    @TemaGerb Автор вопроса
    febday,
    spoiler
    bal = InlineKeyboardButton(text='Баланс(0 руб)',callback_data='Bal')
    bots = InlineKeyboardButton(text='Мои боты',callback_data='Bots')
    ref = InlineKeyboardButton(text='Реферальная программа',callback_data='Ref')
    last = InlineKeyboardButton(text='Последний заказ',callback_data='Last')
    tor = InlineKeyboardButton(text='Tor', url='')
    menu.add(bal).add(bots).add(ref).add(last).add(tor)


    код

    spoiler
    class MyStates(StatesGroup):
        balance = State()
    
    @dp.callback_query_handler(lambda c: c.data == 'Bal')
    async def process_balance(callback_query: types.CallbackQuery):
        await bot.answer_callback_query(callback_query.id)
        await bot.send_message(callback_query.from_user.id, "Введите сумму, которую вы хотите пополнить (не менее 500 рублей):")
        await MyStates.balance.set()
    
    @dp.message_handler(state=MyStates.balance)
    async def process_balance_amount(message: types.Message, state: FSMContext):
        async with state.proxy() as data:
            if not message.text.isdigit():
                await message.reply("Пожалуйста, введите число. Текстовые сообщения не подходят.")
                return
    
            amount = int(message.text)
            if amount < 500:
                await message.reply("Минимальное пополнение должно быть не менее 500 рублей.")
            else:
                await message.reply(f"Отлично! Сумма к оплате вместе с комиссией: {amount+40} рублей.")
                # Здесь вы можете добавить код для предоставления пользователю способов оплаты
    Написано
  • Как сделать что бы при нажатии кнопки Баланс, бот спрашивал сумму пополнения и использовал ее?

    @TemaGerb Автор вопроса
    Нажимаю на кнопку пополнить баланс, ничего не происходит
    spoiler
    class MyStates(StatesGroup):
        balance = State()
    
    @dp.callback_query_handler(lambda c: c.data == 'Bal')
    async def process_balance(callback_query: types.CallbackQuery):
        await bot.answer_callback_query(callback_query.id)
        await bot.send_message(callback_query.from_user.id, "Введите сумму, которую вы хотите пополнить (не менее 500 рублей):")
        await MyStates.balance.set()
    
    @dp.message_handler(state=MyStates.balance)
    async def process_balance_amount(message: types.Message, state: FSMContext):
        async with state.proxy() as data:
            if not message.text.isdigit():
                await message.reply("Пожалуйста, введите число. Текстовые сообщения не подходят.")
                return
    
            amount = int(message.text)
            if amount < 500:
                await message.reply("Минимальное пополнение должно быть не менее 500 рублей.")
            else:
                await message.reply(f"Отлично! Сумма к оплате вместе с комиссией: {amount+40} рублей.")
                # Здесь вы можете добавить код для предоставления пользователю способов оплаты
    Написано
  • При нажатии на кнопку, не получается отправить в ответ текст с другими кнопка, только текст?

    @TemaGerb Автор вопроса
    Кнопкни
    spoiler
    Goroda = types.InlineKeyboardMarkup(row_width=2)
    Don = types.InlineKeyboardButton('Донецк', callback_data='Don')
    Mak = types.InlineKeyboardButton('Макеевка', callback_data='Mak')
    Shah = types.InlineKeyboardButton('Шахтерск', callback_data="Shah")
    Hars = types.InlineKeyboardButton('Харцызск', callback_data='Hars')
    Marik = types.InlineKeyboardButton('Мариуполь', callback_data='Marik')
    Enak = types.InlineKeyboardButton('Енакиево', callback_data='Enak')
    Torez = types.InlineKeyboardButton('Торез', callback_data='Torez')
    Gorl = types.InlineKeyboardButton('Горловка[NEW]', callback_data='Gorl')
    Balans = types.InlineKeyboardButton('Баланс (0 руб)', callback_data='Balans')
    MyBots = types.InlineKeyboardButton('Мои боты', callback_data='MyBots')
    Ref_Prog = types.InlineKeyboardButton('Реферальная программа', callback_data='Ref_Prog')
    Last = types.InlineKeyboardButton('Последний заказ', callback_data='Last')
    Goroda.add(Don, Mak, Shah, Hars, Marik, Enak, Torez, Gorl, row_width=2)
    Goroda.add(Balans, MyBots, Ref_Prog, Last, row_width=1)
    
    #Донецк
    
    Donee = types.InlineKeyboardMarkup(row_width=1)
    Tovar1 = types.InlineKeyboardButton('товар1')
    Tovar2 = types.InlineKeyboardButton('товар2.')
    Tovar3 = types.InlineKeyboardButton('товар3.)')
    Donee.add(Tovar1, Tovar2, Tovar3)

    Ошибки
    spoiler
    2023-09-11 21:10:43,504 (__init__.py:1083 MainThread) ERROR - TeleBot: "Threaded polling exception: A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: can't parse inline keyboard button: Text buttons are unallowed in the inline keyboard"
    2023-09-11 21:10:43,504 (__init__.py:1085 MainThread) ERROR - TeleBot: "Exception traceback:
    Traceback (most recent call last):
      File "D:\PyCharm\Proekts\venv\Lib\site-packages\telebot\__init__.py", line 1074, in __threaded_polling
        self.worker_pool.raise_exceptions()
      File "D:\PyCharm\Proekts\venv\Lib\site-packages\telebot\util.py", line 147, in raise_exceptions
        raise self.exception_info
      File "D:\PyCharm\Proekts\venv\Lib\site-packages\telebot\util.py", line 90, in run
        task(*args, **kwargs)
      File "D:\PyCharm\Proekts\venv\Lib\site-packages\telebot\__init__.py", line 6788, in _run_middlewares_and_handler
        result = handler['function'](message)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "D:\PyCharm\Proekts\main.py", line 48, in don
        bot.send_message(call.message.chat.id, 'выбеберите продукт', reply_markup=Donee)
      File "D:\PyCharm\Proekts\venv\Lib\site-packages\telebot\__init__.py", line 1549, in send_message
        apihelper.send_message(
      File "D:\PyCharm\Proekts\venv\Lib\site-packages\telebot\apihelper.py", line 264, in send_message
        return _make_request(token, method_url, params=payload, method='post')
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "D:\PyCharm\Proekts\venv\Lib\site-packages\telebot\apihelper.py", line 162, in _make_request
        json_result = _check_result(method_name, result)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "D:\PyCharm\Proekts\venv\Lib\site-packages\telebot\apihelper.py", line 189, in _check_result
        raise ApiTelegramException(method_name, result, result_json)
    telebot.apihelper.ApiTelegramException: A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: can't parse inline keyboard button: Text buttons are unallowed in the inline keyboard
    "
    Написано
  • Почему не отправляются кнопки в PyTelegramBotAPI?

    @TemaGerb Автор вопроса
    для aiogram'a нет нормальных видеоуроков. Или если есть, сможете скинуть пожалуйста?