Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 电报机器人:如何在点击按钮时请求用户输入_Python 3.x_Telegram Bot_Python Telegram Bot - Fatal编程技术网

Python 3.x 电报机器人:如何在点击按钮时请求用户输入

Python 3.x 电报机器人:如何在点击按钮时请求用户输入,python-3.x,telegram-bot,python-telegram-bot,Python 3.x,Telegram Bot,Python Telegram Bot,我一直在尝试创建一个电报机器人。我用Python编码,下面是我到目前为止所做的 import logging from telegram import InlineKeyboardButton, InlineKeyboardMarkup from telegram.ext import Updater, CommandHandler, CallbackQueryHandler logging.basicConfig(format='%(asctime)s - %(name)s - %(leve

我一直在尝试创建一个电报机器人。我用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()
导入日志
从电报导入InlineKeyboardButton,InlineKeyboardMarkup
从telegram.ext导入更新程序、CommandHandler、CallbackQueryHandler
logging.basicConfig(格式='(asctime)s-%(名称)s-%(levelname)s-%(消息)s',
级别=logging.INFO)
logger=logging.getLogger(_名称__)
@附件路线(“/”)
def启动(机器人,更新):
help_text='text'
键盘=[[InlineKeyboardButton(“按钮1”,url=('url'))]]
reply_markup=InlineKeyboardMarkup(键盘)
update.message.reply\u text(帮助文本,reply\u标记=reply\u标记)
def按钮(机器人,更新):
query=update.callback\u查询
bot.edit_message_text(text=“Selected option:{}.”格式(query.data),
chat\u id=query.message.chat\u id,
message\u id=query.message.message\u id)
def错误(机器人、更新、错误):
logger.warning('更新“%s”导致错误“%s”,更新,错误)
def main():
updater=updater()
add_处理程序(CommandHandler('start',start))
updater.dispatcher.add_处理程序(CallbackQueryHandler(按钮))
updater.dispatcher.add\u error\u处理程序(error)
updater.start_polling()
updater.idle()
如果名称=“\uuuuu main\uuuuuuuu”:
main()

我一直在尝试在单击按钮1时实现用户输入,即单击按钮1时,用户应收到带有输入字段的消息(例如:请输入您喜爱的歌曲)。有什么建议吗?

我想你需要使用
ConversationHandler
。比如:

  • 启动后接受按钮
  • 按钮1上
    打印
    请输入您喜爱的歌曲
    并等待文本
  • 关于文本打印文本和结束对话

请参阅您的使用。

如果Heroku在本地不适用,它似乎与Heroku没有任何关系。