我正在开发一个python-telegram-bot,但是我正面临着这个问题...
@run_async
def register(bot, update, args):
if update.message.chat_id < 0:
bot.send_message(chat_id=update.message.chat_id, text="Use PM", parse_mode=telegram.ParseMode.MARKDOWN)
return
# user data
user_username = update.effective_user.username
user_chatid = update.message.chat_id
user_firstname = update.message.from_user.first_name
try:
channel_data = args[0]
except IndexError as e:
update.message.reply_text("Please enter your Channel details!!")
return
# filter for avoid spammer
if len(channel_data) > 500:
bot.send_message(chat_id=update.message.chat_id, text="Please do not Spam in the bot!", parse_mode=telegram.ParseMode.MARKDOWN)
return
# check same data:
# send user data to users_data
user_data[str(user_chatid)] = {"user_firstname": str(user_firstname), "user_username": user_username, "channel_data": channel_data}
# make report message about user's biodata
msg = "Registered by: " + user_firstname + "\n"
msg += "@" + user_username + "\n"
msg += "Channel details: \n" + channel_data + "\n"
print(user_data)
print("\n")
print(msg)
# send message to user
bot.send_message(chat_id=293125876, text=msg)
这^^^是我正在努力的代码。 错误是:
<bot_name> v1 : Started Succesfully!
2018-09-05 09:45:16,764 - telegram.utils.promise - ERROR - An uncaught error was raised while running the promise
Traceback (most recent call last):
File "C:\Users\DELL\AppData\Local\Programs\Python\Python37-32\lib\site-packages\telegram\utils\promise.py", line 57, in run
self._result = self.pooled_function(*self.args, **self.kwargs)
TypeError: register() missing 1 required positional argument: 'args'
/ start / help之类的功能正常工作! 但是上面的命令在使用时会出现此错误。
有人可以帮忙吗?
答案 0 :(得分:0)
您是否在CommandHandler参数中添加了pass_args=True
?如果没有,它应该像这样:
register_handler = CommandHandler('register', register, pass_args=True)