Telegram bot:如何在按钮点击时要求用户输入

Joe*_*Joe 5 python-3.x python-telegram-bot telegram-bot

我一直在尝试创建一个电报机器人。我用 Python 编码,以下是我到目前为止所做的。

import logging
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Updater, CommandHandler, CallbackQueryHandler

logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
                    level=logging.INFO)
logger = logging.getLogger(__name__)

@app.route("/")
def start(bot, update):
    help_text = 'text'
    keyboard = [[InlineKeyboardButton("Button_1", url=('url'))]]
    reply_markup = InlineKeyboardMarkup(keyboard)
    update.message.reply_text(help_text, reply_markup=reply_markup)


def button(bot, update):
    query = update.callback_query
    bot.edit_message_text(text="Selected option: {}".format(query.data),
                          chat_id=query.message.chat_id,
                          message_id=query.message.message_id)

def error(bot, update, error):
    logger.warning('Update "%s" caused error "%s"', update, error)


def main():
    updater = Updater(<TOKEN>)
    updater.dispatcher.add_handler(CommandHandler('start', start))
    updater.dispatcher.add_handler(CallbackQueryHandler(button))
    updater.dispatcher.add_error_handler(error)
    updater.start_polling()
    updater.idle()


if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)

我一直在尝试在单击 Button_1 时实现用户输入,即,在单击 Button_1 时,用户应该收到一条带有输入字段的消息(例如:请输入您最喜欢的歌曲)。任何指示或建议?

wow*_*in2 0

ConversationHandler我认为你需要为此使用。就像是:

  • 开始后接受按钮
  • 正在Button 1打印please enter your favorite song并等待文本
  • on text 打印文本并结束对话

请参阅您使用的库中的示例。