ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Общие вопросы программирования (https://forum.antichat.xyz/forumdisplay.php?f=206)
-   -   проблема с инлайн кнопкой (https://forum.antichat.xyz/showthread.php?t=1518085)

Kfgeer 10.08.2024 00:24

есть функция 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
(
)


fokichevskiy 10.08.2024 00:46

я конечно не знаю библиотеку telebot, но мне кажется в bot.send_message еще должен быть reply_markup=markup

bootstrap 10.08.2024 10:45

Ну как минимум у тебя все пять кнопок идут в ряд. Их прочитать тяжело будет.

Во вторых ты отправляешь пустое сообщение без кнопок. То есть, ты их инициализируешь, но не отправляешь вместе с сообщением.

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 10.08.2024 12:14

Цитата:

Сообщение от bootstrap

Ну как минимум у тебя все пять кнопок идут в ряд. Их прочитать тяжело будет.
Во вторых ты отправляешь пустое сообщение без кнопок. То есть, ты их инициализируешь, но не отправляешь вместе с сообщением.

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.pngKfgeer · 10 Авг 2024 в 11:14' data-fancybox="lb-post-1527955" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://www.blast.hk/attachments/248837/" style="cursor: pointer;" title="1723277762387.png">
https://forum.antichat.xyz/attachmen...0a8e180a45.png

Проблема решена!

Стоило заменить

Код:





Код:

@bot.message_handler(message="Создать Заказ")


на

Код:





Код:

@bot.message_handler(func=lambda message: message.text == "Создать Заказ")


воспользовавшись правкой человека выше, а так же переместить функцию инлайн выше функции распознавания сообщения с кнопок

всё заработало


Время: 23:46