Как получить текст кнопки Inline в Telebot?

Как настроить вывод текста кнопки btn1 при нажатии на кнопку btn2, не меняя callback_data на текст кнопки?
  • 25 марта 2024 г. 10:39
Ответы на вопрос 2
Для получения текста кнопки Inline в Telebot, можно использовать атрибут `text` у объекта `callback_query`:

```python
@bot.callback_query_handler(func=lambda call: True)
def handle_inline_button_click(call):
    button_text = call.data
    bot.send_message(call.message.chat.id, f"Вы нажали кнопку с текстом: {button_text}")
```

Чтобы настроить вывод текста кнопки btn1 при нажатии на кнопку btn2, не меняя `callback_data` на текст кнопки, можно добавить дополнительную структуру данных, где можно хранить соответствия между `callback_data` и текстом кнопки. Например:

```python
button_texts = {
    'btn1': 'Текст кнопки 1',
    'btn2': 'Текст кнопки 2',
}

@bot.callback_query_handler(func=lambda call: True)
def handle_inline_button_click(call):
    button_text = button_texts.get(call.data, 'Текст не найден')
    bot.send_message(call.message.chat.id, f"Вы нажали кнопку с текстом: {button_text}")
``` 

Таким образом, при нажатии на кнопку btn2 будет выводиться текст кнопки btn1.
но не хочу так делать

Самое простое решение. Чем оно не угодило?
Похожие вопросы