ANTICHAT

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

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

Цитата:

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

Добрый день. Попробуйте вот так:

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

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

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

Fasz fiatal 12.02.2025 10:45

Цитата:

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

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

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





https://forum.antichat.xyz/attachmen...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

Цитата:

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

Так используй только что-то одно

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

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
)



Время: 16:36