Python Telegram机器人回调,自定义消息不起作用

时间:2018-06-16 07:12:57

标签: python telegram telegram-bot python-telegram-bot

我正在使用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)

但这导致了一个问题。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

请参阅documentation:变量tweet(无论添加处理程序时是什么)都会为CommandHandler定义过滤器。
我看过过滤器只使用了一次(here,虽然这个例子我觉得这是另一回事)但是根据我的理解,这只为Dispatcher对象添加了一个额外的规则更新它将调度到该回调函数,但Dispatcher仍然只会将两个参数botupdate传递给该回调函数。所以我想问题是你的回调函数hello需要三个位置参数,但引擎盖下的电报API只用两个参数调用它。即使你没有通知程序员这个失败,这也会失败。

在向机器人用户写入消息时,您在预期输入意义上尝试做的是什么?预期答案?从这个问题的标题我猜测/show message之类的东西应该用message回答?这样的事情可以通过already mentioned example中的MessageHandler来完成 或者你想做一些与众不同的事情?什么作为参数tweet传递?请澄清。