Я создаю бот-телеграмму с использованием библиотеки python-telegram-bot и хочу добавить обработчик, который обрабатывает параметры.
После этой статьи я добавил новый обработчик, используя директиву pass_args=True
, но безуспешно
Это то, что я написал до сих пор:
from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
import logging
[...]
def parameters(bot, update, args):
user_says = " ".join(args)
update.message.reply_text("You said: " + user_says)
[...]
def main():
updater = Updater(TOKEN, use_context=True)
d = updater.dispatcher
# Handlers
d.add_handler(CommandHandler("start", start))
d.add_handler(CommandHandler("parameters", parameters, pass_args=True))
d.add_handler(CommandHandler("help", helper))
# Start the bot
updater.start_polling()
# Keep it active untile CTRL + C
updater.idle()
Проблема в том, что когда я запускаю /parameter <some_text>
из телеграммы, бот выдает мне эту ошибку:
2019-06-20 20:57:19,823 - telegram.ext.dispatcher - ERROR - An uncaught error was raised while processing the update
Traceback (most recent call last):
File "/home/zzz/aaaa/bot/venv/lib/python3.7/site-packages/telegram/ext/dispatcher.py", line 333, in process_update
handler.handle_update(update, self, check, context)
File "/home/zzz/aaaa/bot/venv/lib/python3.7/site-packages/telegram/ext/handler.py", line 117, in handle_update
return self.callback(update, context)
TypeError: parameters() missing 1 required positional argument: 'args'
Что я делаю не так?
Я использую последнюю бета-версию (python-telegram-bot==12.0.0b1
).