HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 10.08.2024, 00:24
Kfgeer
Познающий
Регистрация: 23.10.2023
Сообщений: 78
С нами: 1347696

Репутация: 13
По умолчанию

есть функция 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
(
)
 
Ответить с цитированием

  #2  
Старый 10.08.2024, 00:46
fokichevskiy
Постоянный
Регистрация: 28.12.2023
Сообщений: 509
С нами: 1253890

Репутация: 68


По умолчанию

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

  #3  
Старый 10.08.2024, 10:45
bootstrap
Познающий
Регистрация: 25.12.2018
Сообщений: 38
С нами: 3886891

Репутация: 63
По умолчанию

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

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

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
 
Ответить с цитированием

  #4  
Старый 10.08.2024, 12:14
Kfgeer
Познающий
Регистрация: 23.10.2023
Сообщений: 78
С нами: 1347696

Репутация: 13
По умолчанию

Цитата:
Сообщение от 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">


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

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

Код:





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


на

Код:





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


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

всё заработало
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.