Для добавления инлайн клавиатуры к сообщению в Pyrogram, нужно использовать классы InlineKeyboardMarkup
и InlineKeyboardButton
из модуля pyrogram.types
.
В вашем коде вы уже используете эти классы, поэтому проблема, скорее всего, не в этом.
Возможно, вы забыли добавить обработчик для callback_query
в вашем боте. Для того, чтобы обрабатывать нажатия на кнопки, необходимо добавить обработчик callback_query
в ваш код.
Вот пример кода, который добавляет обработчик callback_query
и позволяет обрабатывать нажатия на кнопки:
from pyrogram import Client, filters
from pyrogram.types import InlineKeyboardButton, InlineKeyboardMarkup
app = Client(name='user_bot', api_id=API_ID, api_hash=API_HASH)
# Обработчик команды /start
@app.on_message(filters.command("start"))
def start_command(client, message):
keyboard = InlineKeyboardMarkup([
[InlineKeyboardButton("Кнопка 1", callback_data="button1")],
[InlineKeyboardButton("Кнопка 2", callback_data="button2")]
])
message.reply_text("Ответ с клавиатурой", reply_markup=keyboard)
# Обработчик нажатий на кнопки
@app.on_callback_query()
def handle_callback_query(client, query):
if query.data == "button1":
# Действия при нажатии на кнопку 1
pass
elif query.data == "button2":
# Действия при нажатии на кнопку 2
pass
app.run()
Также, убедитесь, что вы используете правильный токен бота и правильно настроили его доступ к API Telegram.
Ниже приведены ссылки на документацию Pyrogram
и Stack Overflow
, которые могут помочь вам решить вашу проблему:
**[InlineKeyboardButton — Pyrogram Documentation]**
https://docs.pyrogram.org/api/types/InlineKeyboardButton
**[Как работать с inlinekeyboard в pyrogram - Stack Overflow на русском]**
Как работать с inlinekeyboard в pyrogram
**[Dont send message with inlinekeyboard pyrogram - Stack Overflow]**
https://stackoverflow.com/questions/71187717/dont-send-message-with-inlinekeyboard-pyrogram