проблема с инлайн кнопкой

Kfgeer

Участник
Автор темы
65
10
есть функция reply кнопок, всё работает, выводит нужный мне текст и всё окей
мне нужно чтобы после сообщения "Создать Заказ" вылазил текст "Выберите нужную вам услугу" с инлайн кнопками ниже
не понимаю что сделал не так

Python:
@bot.message_handler(message="Создать Заказ")
def zakaz(message):
    markup = types.InlineKeyboardMarkup()
    one = types.InlineKeyboardButton("первая услуга", callback_data="one")
    two = types.InlineKeyboardButton("вторая услуга", callback_data="two")
    three = types.InlineKeyboardButton("третья услуга", callback_data="thee")
    four = types.InlineKeyboardButton("четвёртая услуга", callback_data="four")
    five = types.InlineKeyboardButton("пятая услуга", callback_data="five")
    markup.row(one, two, three, four, five)
    bot.send_message(message.chat.id,"Выберите нужную вам услугу")


bot.infinity_polling()
 
Решение
Ну как минимум у тебя все пять кнопок идут в ряд. Их прочитать тяжело будет.
Во вторых ты отправляешь пустое сообщение без кнопок. То есть, ты их инициализируешь, но не отправляешь вместе с сообщением.
Python:
@bot.message_handler(message="Создать Заказ")
def zakaz(message):
    markup = types.InlineKeyboardMarkup()
    one = types.InlineKeyboardButton("первая услуга", callback_data="one")
    two = types.InlineKeyboardButton("вторая услуга", callback_data="two")
    three = types.InlineKeyboardButton("третья услуга", callback_data="three")
    four = types.InlineKeyboardButton("четвёртая услуга", callback_data="four")
    five = types.InlineKeyboardButton("пятая услуга", callback_data="five")

    markup.row(one, two)
    markup.row(three...

bootstrap

Известный
38
2
Ну как минимум у тебя все пять кнопок идут в ряд. Их прочитать тяжело будет.
Во вторых ты отправляешь пустое сообщение без кнопок. То есть, ты их инициализируешь, но не отправляешь вместе с сообщением.
Python:
@bot.message_handler(message="Создать Заказ")
def zakaz(message):
    markup = types.InlineKeyboardMarkup()
    one = types.InlineKeyboardButton("первая услуга", callback_data="one")
    two = types.InlineKeyboardButton("вторая услуга", callback_data="two")
    three = types.InlineKeyboardButton("третья услуга", callback_data="three")
    four = types.InlineKeyboardButton("четвёртая услуга", callback_data="four")
    five = types.InlineKeyboardButton("пятая услуга", callback_data="five")

    markup.row(one, two)
    markup.row(three, four, five)

    bot.send_message(message.chat.id, "Выберите нужную вам услугу", reply_markup=markup)

К тому же тебе нужно отправлять конкретно пользователю, а не в чат где было написано сообщение. Так как, если у тебя бот добавлен в любую группу, и там напишут "Создать Заказ", то твой бот отправит меню прямо в чат, а не в лс пользователю. Исправь с message.chat.id на message.from_user.id
 

Kfgeer

Участник
Автор темы
65
10
Ну как минимум у тебя все пять кнопок идут в ряд. Их прочитать тяжело будет.
Во вторых ты отправляешь пустое сообщение без кнопок. То есть, ты их инициализируешь, но не отправляешь вместе с сообщением.
Python:
@bot.message_handler(message="Создать Заказ")
def zakaz(message):
    markup = types.InlineKeyboardMarkup()
    one = types.InlineKeyboardButton("первая услуга", callback_data="one")
    two = types.InlineKeyboardButton("вторая услуга", callback_data="two")
    three = types.InlineKeyboardButton("третья услуга", callback_data="three")
    four = types.InlineKeyboardButton("четвёртая услуга", callback_data="four")
    five = types.InlineKeyboardButton("пятая услуга", callback_data="five")

    markup.row(one, two)
    markup.row(three, four, five)

    bot.send_message(message.chat.id, "Выберите нужную вам услугу", reply_markup=markup)

К тому же тебе нужно отправлять конкретно пользователю, а не в чат где было написано сообщение. Так как, если у тебя бот добавлен в любую группу, и там напишут "Создать Заказ", то твой бот отправит меню прямо в чат, а не в лс пользователю. Исправь с message.chat.id на message.from_user.id
так же не работает, нет отклика, после нажатия на кнопку вызова сообщения с менюшкой, ничего не происходит

1723277762387.png


Проблема решена!
Стоило заменить
Код:
@bot.message_handler(message="Создать Заказ")
на
Код:
@bot.message_handler(func=lambda message: message.text == "Создать Заказ")
воспользовавшись правкой человека выше, а так же переместить функцию инлайн выше функции распознавания сообщения с кнопок
всё заработало
 
Последнее редактирование:
  • Нравится
Реакции: bootstrap