41 lines
1.1 KiB
Markdown
41 lines
1.1 KiB
Markdown
---
|
|
title: "❌ Ошибка 400 при добавлении InlineKeyboardButton в Telegram"
|
|
date: 2023-01-22T21:33:01+03:00
|
|
draft: false
|
|
tags: [tips, telegram, python]
|
|
---
|
|
|
|
## Ошибка 400
|
|
|
|
```text
|
|
Error code: 400.
|
|
Description: Bad Request: can't parse inline keyboard button:
|
|
Text buttons are unallowed in the inline keyboard
|
|
```
|
|
|
|
Имеем такой код
|
|
|
|
```python
|
|
keyboard = types.InlineKeyboardMarkup()
|
|
types_buttons = (
|
|
types.InlineKeyboardButton('\U0001f44d'),
|
|
types.InlineKeyboardButton('\U0001f44e'),
|
|
)
|
|
|
|
for type_button in types_buttons:
|
|
keyboard.add(type_button)
|
|
|
|
bot.send_message(message.chat.id, 'text', reply_markup=keyboard)
|
|
```
|
|
|
|
## Решение
|
|
|
|
Инлайн кнопки должны иметь хотя бы одно опциональное поле:
|
|
`callback_data`, `url`, `switch_inline_query` и т.д.
|
|
You must use exactly one of the optional fields
|
|
(https://core.telegram.org/bots/api#inlinekeyboardbutton)
|
|
|
|
Если нужны текстовые кнопки, необходимо использовать класс `ReplyKeyboardMarkup`.
|
|
|
|
Thanks [GrAnd](https://ru.stackoverflow.com/a/1354497).
|