PDA

Просмотр полной версии : replykeyboard


Fasz fiatal
02.02.2025, 20:03
ругается на кнопки с такой ошибкой



Task exception was never retrieved

future: exception=BadRequest("Can't parse reply keyboard markup json object")>



Python:






rsp
=
ReplyKeyboardMarkup
(
resize_keyboard
=
True
)
rsp
.
add
(
"Камень"
)
.
add
(
"Ножницы"
)
.
add
(
"Бумага"
)
@disp.message_handler
(
text
=
"Y"
)
async
def
accept
(
m
:
Message
)
:
text
=
m
.
text
chat_id
=
m
.
chat
.
id
if
text
==
"Y"
await
m
.
answer
(
"Выбор за тобой"
,
reply_markup
=
rsp
)

FixZer
09.02.2025, 13:29
Добрый день. Попробуйте вот так:

Python:






from
aiogram
import
Bot
,
Dispatcher
,
types
from
aiogram
.
types
import
ReplyKeyboardMarkup
,
KeyboardButton

rsp
=
ReplyKeyboardMarkup
(
resize_keyboard
=
True
)
rsp
.
add
(
KeyboardButton
(
"Камень"
)
)
rsp
.
add
(
KeyboardButton
(
"Ножницы"
)
)
rsp
.
add
(
KeyboardButton
(
"Бумага"
)
)
@disp.message_handler
(
text
=
"Y"
)
async
def
accept
(
m
:
types
.
Message
)
:
text
=
m
.
text
chat_id
=
m
.
chat
.
id
if
text
==
"Y"
:
await
m
.
answer
(
"Выбор за тобой"
,
reply_markup
=
rsp
)

Fasz fiatal
09.02.2025, 20:28
Добрый день. Попробуйте вот так:

Python:






from
aiogram
import
Bot
,
Dispatcher
,
types
from
aiogram
.
types
import
ReplyKeyboardMarkup
,
KeyboardButton

rsp
=
ReplyKeyboardMarkup
(
resize_keyboard
=
True
)
rsp
.
add
(
KeyboardButton
(
"Камень"
)
)
rsp
.
add
(
KeyboardButton
(
"Ножницы"
)
)
rsp
.
add
(
KeyboardButton
(
"Бумага"
)
)
@disp.message_handler
(
text
=
"Y"
)
async
def
accept
(
m
:
types
.
Message
)
:
text
=
m
.
text
chat_id
=
m
.
chat
.
id
if
text
==
"Y"
:
await
m
.
answer
(
"Выбор за тобой"
,
reply_markup
=
rsp
)





А, еще забыл уточнение: это вторая клавиатура. Стало выводить первую клавиатуру

FixZer
10.02.2025, 20:27
А, еще забыл уточнение: это вторая клавиатура. Стало выводить первую клавиатуру


Чуть-чуть не понял вас, можете пожалуйста прислать скриншот ?

Fasz fiatal
12.02.2025, 10:45
Чуть-чуть не понял вас, можете пожалуйста прислать скриншот ?


есть у меня 2 варианта кнопок





https://forum.antichat.xyz/attachments/28585418/img_6211937dcd.png
, но при вызове второго выводит первый и выдает ошибку

FixZer
12.02.2025, 13:05
Так используй только что-то одно

Используй вот это:

Python:






button
=
ReplyKeyboardMarkup
(
resize_keyboard
=
True
)
button
.
add
(
KeyboardButton
(
"Камень"
)
)
.
add
(
KeyboardButton
(
"Ножницы"
)
)
.
add
(
KeyboardButton
(
"Ребро"
)
)




Или вот это:

Python:






rsp
=
ReplyKeyboardMarkup
(
resize_keyboard
=
True
)
rsp
.
add
(
KeyboardButton
(
"Камень"
)
)
rsp
.
add
(
KeyboardButton
(
"Ножницы"
)
)
rsp
.
add
(
KeyboardButton
(
"Бумага"
)
)

Fasz fiatal
13.02.2025, 14:55
Так используй только что-то одно

Используй вот это:

Python:






button
=
ReplyKeyboardMarkup
(
resize_keyboard
=
True
)
button
.
add
(
KeyboardButton
(
"Камень"
)
)
.
add
(
KeyboardButton
(
"Ножницы"
)
)
.
add
(
KeyboardButton
(
"Ребро"
)
)




Или вот это:

Python:






rsp
=
ReplyKeyboardMarkup
(
resize_keyboard
=
True
)
rsp
.
add
(
KeyboardButton
(
"Камень"
)
)
rsp
.
add
(
KeyboardButton
(
"Ножницы"
)
)
rsp
.
add
(
KeyboardButton
(
"Бумага"
)
)





не помогло

FixZer
13.02.2025, 21:28
Добрый вечер, совсем забыл что в новой версии библиотеки убрали функцию add, теперь нужно именно в ReplyKeyboardMarkup передавать список кнопок.

Вот пример:

Python:






keyboard
=
[
[
KeyboardButton
(
text
=
"Камень"
)
,
KeyboardButton
(
text
=
"Ножницы"
)
]
,
[
KeyboardButton
(
text
=
"Бумага"
)
]
]
rsp
=
ReplyKeyboardMarkup
(
keyboard
=
keyboard
,
resize_keyboard
=
True
)