我正在使用Python telegram bot api(https://python-telegram-bot.org/)来回复命令。
我的调度员看起来像这样:
updater.dispatcher.add_handler(CommandHandler('show', hello, tweet))
回调函数是:
def hello(bot, update, tweet):
update.message.reply_text(tweet)
但这导致了一个问题。有什么建议吗?
答案 0 :(得分:0)
请参阅documentation:变量tweet
(无论添加处理程序时是什么)都会为CommandHandler
定义过滤器。
我看过过滤器只使用了一次(here,虽然这个例子我觉得这是另一回事)但是根据我的理解,这只为Dispatcher
对象添加了一个额外的规则更新它将调度到该回调函数,但Dispatcher
仍然只会将两个参数bot
和update
传递给该回调函数。所以我想问题是你的回调函数hello
需要三个位置参数,但引擎盖下的电报API只用两个参数调用它。即使你没有通知程序员这个失败,这也会失败。
在向机器人用户写入消息时,您在预期输入意义上尝试做的是什么?预期答案?从这个问题的标题我猜测/show message
之类的东西应该用message
回答?这样的事情可以通过already mentioned example中的MessageHandler
来完成
或者你想做一些与众不同的事情?什么作为参数tweet
传递?请澄清。