Как добавить функцию в InlineKeyboardButton в Python-Telegram-Bot?Python

Программы на Python
Ответить
Anonymous
 Как добавить функцию в InlineKeyboardButton в Python-Telegram-Bot?

Сообщение Anonymous »

Я работаю с версией Python Telegram бота более 20. Я пытаюсь сделать так, чтобы при выборе варианта 1 он отправлял сообщение с моей функцией, а когда я выбираю, например, вариант 2, он возвращал другую функцию. >

Код: Выделить всё

from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Update
from telegram.ext import

async def start_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
keyboard = [
[
InlineKeyboardButton("Option 1", callback_data="1"),
InlineKeyboardButton("Option 2", callback_data="2"),
],
[InlineKeyboardButton("Option 3", callback_data="3"),]
]

reply_markup1 = InlineKeyboardMarkup(keyboard)

await update.message.reply_text('Hello!')
await update.message.reply_text('Choose one of options',reply_markup=reply_markup1)

async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await update.message.reply_text("how can i help you")

async def button(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
query = update.callback_query
await query.answer()
await query.edit_message_text(text=f'Selected option: {query.data}')
if query.data == "1":
await query.message.reply_text(help_command)
В Telegram это будет выглядеть примерно так:

Привет!


Выберите один из вариантов


(вариант 1) (вариант 2)
(вариант 3)


[я выбираю вариант 1]


чем я могу вам помочь

Вот какую ошибку я получаю:

Код: Выделить всё

telegram.error.NetworkError: Unknown error in HTTP implementation: TypeError('Object of type function is not JSON serializable')
Я не помню, что я пробовал, но раньше я тоже получал эту ошибку:

Код: Выделить всё

AttributeError: 'NoneType' object has no attribute 'reply_text'
Я видел похожий вопрос, но ответа до сих пор нет

Подробнее здесь: https://stackoverflow.com/questions/792 ... legram-bot
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»