Python 电报机器人不';CommandHandler启动后,无法应答

Python 电报机器人不';CommandHandler启动后,无法应答,python,telegram,telegram-bot,pypi,python-telegram-bot,Python,Telegram,Telegram Bot,Pypi,Python Telegram Bot,所以,我用Python创建了一个新的机器人。我正在使用PyPI(PY电报机器人)。这几天我学到了很多东西,甚至开始起作用了。在使用MessageHandler时,我几乎可以发送一条消息,机器人会返回一条文本或图片 但现在我想要一些不同的东西。我想开始为Telegram创建一个游戏,还要学习更多关于如何使用该库的知识 问题是:每次我想要机器人回答我,它都不工作。基本上,当进入rockpaperscissors函数时,我希望它显示一条文本,询问一个选项,然后,无论这个答案是什么,都会引导我找到机器人

所以,我用Python创建了一个新的机器人。我正在使用PyPI(PY电报机器人)。这几天我学到了很多东西,甚至开始起作用了。在使用MessageHandler时,我几乎可以发送一条消息,机器人会返回一条文本或图片

但现在我想要一些不同的东西。我想开始为Telegram创建一个游戏,还要学习更多关于如何使用该库的知识

问题是:每次我想要机器人回答我,它都不工作。基本上,当进入rockpaperscissors函数时,我希望它显示一条文本,询问一个选项,然后,无论这个答案是什么,都会引导我找到机器人的答案。但每当我回答时,机器人都不会回答

这是源代码。我排除了多余的部分,这样就不会那么混乱了。感谢您的帮助:)


您的bot需要一个命令
/rps
,并且响应正确。但是,当您发送一条普通消息(而不是命令)时,bot就不知道该做什么。请注意,只有当用户发送以
/rps
/rps@yourbot
,但它永远不等于“摇滚乐”。因此,您的
if
将永远不会执行

您必须添加一个函数并将另一个函数关联到消息处理

from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, ConversationHandler, CallbackContext
import random

def rockpaperscissors(update, context):
    update.message.reply_text('Rock, paper, scissors. Return an option')
    msgUsr = str(update.message.text)
    if msgUser == "rock":
        update.message.reply_text("You chose 'rock'")

def main():
    token ='(token)'
    updater = Updater(token=token, use_context=True)
    dispatcher.add_handler(CommandHandler('rps',rockpaperscissors))
    updater.start_polling()
    updater.idle()

if __name__ == "__main__":
    main()