replykeyboard

Fasz fiatal

Известный
Автор темы
324
66
ругается на кнопки с такой ошибкой
Task exception was never retrieved
future: <Task finished name='Task-789' coro=<Dispatcher._process_polling_updates() done, defined at C:\python\Lib\site-packages\aiogram\dispatcher\dispatcher.py:407> 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

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

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

Известный
Автор темы
324
66
Добрый день. Попробуйте вот так:

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

Известный
Автор темы
324
66
Чуть-чуть не понял вас, можете пожалуйста прислать скриншот ?
есть у меня 2 варианта кнопок
1739342622211.png
, но при вызове второго выводит первый и выдает ошибку
 

FixZer

Активный
139
43
Так используй только что-то одно

Используй вот это:
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("Бумага"))
 
Последнее редактирование:
  • Ха-ха
Реакции: cloused2

Fasz fiatal

Известный
Автор темы
324
66
Так используй только что-то одно

Используй вот это:
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

Активный
139
43
Добрый вечер, совсем забыл что в новой версии библиотеки убрали функцию add, теперь нужно именно в ReplyKeyboardMarkup передавать список кнопок.
Вот пример:
Python:
keyboard = [
    [KeyboardButton(text="Камень"), KeyboardButton(text="Ножницы")],
    [KeyboardButton(text="Бумага")]
]
rsp = ReplyKeyboardMarkup(keyboard=keyboard, resize_keyboard=True)