我用python用telebot制作了一个电报机器人,但是我得到一个错误,我有textbutton,尽管我使用了InlineKeyboardButton,为什么?

问题描述 投票:0回答:2

这就是我的代码:

keyboard = types.InlineKeyboardMarkup(row_width=2) # вывод кнопок в 1 колонку
btn_1 = types.InlineKeyboardButton(bookmarks_categories[0], callback_data=0)
btn_2 = types.InlineKeyboardButton(bookmarks_categories[1], callback_data=1)
btn_3 = types.InlineKeyboardButton(bookmarks_categories[2], callback_data=2)
keyboard.add(btn_1,btn_2,btn_3,btn_4,btn_5,btn_6,btn_7,btn_8,btn_9,btn_10,btn_11,btn_12,btn_13,btn_14,btn_15,btn_16,btn_17)
bot.send_message(message.chat.id, 'Вывод inline-клавиатуры', reply_markup=keyboard)

那是我的错误:

2021-08-28 00:11:29,741 (__init__.py:652 MainThread) ERROR - TeleBot: "A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: can't parse inline keyboard button: Text buttons are unallowed in the inline keyboard"

我该如何解决这个问题?

python telegram telegram-bot python-telegram-bot py-telegram-bot-api
2个回答
0
投票

你可以检查这个解决方案,我用多个键盘做了一个项目,例如 inline_keyboards 和 Reply_keyboards,我使用了 telegram 库

from telegram import (InlineKeyboardButton, InlineKeyboardMarkup)

对于内联键盘按钮,您可以首先通过以下方式识别键盘按钮:

buttons = [
    [
        InlineKeyboardButton(text=bookmarks_categories[0],callback_data=0),
        InlineKeyboardButton(text=bookmarks_categories[1],callback_data=1),
    ],
]

然后像这样识别你的键盘:

keyboard = InlineKeyboardMarkup(buttons)

0
投票

您需要传递额外的回调数据才能工作


        github.setText("Github ");
        github.setCallbackData(UUID.randomUUID().toString());

© www.soinside.com 2019 - 2024. All rights reserved.