Как исправить: «отсутствует 1 обязательный позиционный аргумент:« args »» с помощью python-telegram-bot - PullRequest
0 голосов
/ 20 июня 2019

Я создаю бот-телеграмму с использованием библиотеки 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).

1 Ответ

0 голосов
/ 27 июня 2019

Возможно, отсутствуют параметры по параметрам:

d.add_handler(CommandHandler("parameters", parameters(bot, update, args), pass_args=True))
...