无法接收来自用户的更新消息

Can't receive update messages from user

我正在尝试创建一个机器人来接收用户的响应并在需要时再次询问。问题是:

update.reply_text("Did you report all you working hour on freshdesk for this week?, ReplyKeyboardMarkup(reply_keyboard, one_time_keyboard=True))

我无法获取新的更新。消息文本在第一个 print 中仍然是 /start,而第二个 print 根本不起作用。

如何才能正确得到用户的响应?这可能是与 ReplyMarkup 相关的问题吗?

def check_the_week(bot, update):
    agent_username = update.message.from_user['username']
    parameters = {"username": agent_username}
    url = "{}/weekly_hours/".format(API_URL)
    report = get_request_forwarder(url=url, method="GET", parameters=parameters)["messages"]
    reply_keyboard = [['YES', 'NO']]
    bot.send_message(
       chat_id=update.message.chat_id,
       text=report,
       reply_markup=ReplyKeyboardMarkup(reply_keyboard,  one_time_keyboard=True))  # sends the total nr of hours
    print update.message.text
    update.reply_text("Did you report all you working hour on freshdesk for this week?",
                  ReplyKeyboardMarkup(reply_keyboard, one_time_keyboard=True))
    print update.message.text
    if update.message.text == "YES":
        update.message.reply_text(text="Are you sure?",                            reply_markup=ReplyKeyboardMarkup(reply_keyboard, one_time_keyboard=True))

    # Asks confirmation
        if update.message.text == "YES":
            update.message.reply_text(text="Thank you for reporting your working hours in time!")

        elif update.message.text == "NO":
            update.message.reply_text(text="Please, check you time reports and add missing")

    elif update.message.text == "NO":
        update.message.reply_text(text="Please, check you time reports and add missing")


def main():
    # Create the EventHandler and pass it your bot's token.
    updater = Updater(TELEGRAM_TOKEN)
    j = updater.job_queue
    # # Get the dispatcher to register handlers
    dp = updater.dispatcher
    # # Start the Bot

    dp.add_handler(CommandHandler("start", check_the_week))
    # Send information to manager by command

    updater.start_polling()
    updater.idle()
    print("bot started")

if __name__ == '__main__':
    main()

因为您使用的是CommandHandler,它一次只能捕获一个命令。

你想做的事情可以通过使用 ConversationHandler 来实现。请阅读示例脚本 here and here. Also you can read more details on the handler here.