使用Heroku托管电报机器人

时间:2018-02-18 00:28:21

标签: python-3.x heroku 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 - %(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()

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

1 个答案:

答案 0 :(得分:0)

我认为您需要为此使用 ConversationHandler。类似的东西:

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

查看您使用的 example in library

相关问题