问题描述
我正在尝试制作键盘按钮电报机器人。但我面临错误帮助我。我尝试了很多时间来修复但失败了。
我的代码:
from pyrogram.types import ReplyKeyboardMarkup
from pyrogram import client
bot = ("bot")
@pyrogram.filters.command(commands: Union["start"] = 'start',prefixes: Union["/","!"],case_sensitive: bool = False)
async def example():
bot.send_message(
chat_id=message.chat.id,text="test",reply_markup = ReplyKeyboardMarkup(
[
["test button"],["test button 2"]
]))
错误:
2021-04-16T11:57:40.864700+00:00 app[worker.1]: File "/app/main.py",line 6
2021-04-16T11:57:40.864717+00:00 app[worker.1]: @pyrogram.filters.command(commands: Union["start"] = 'start',case_sensitive: bool = False)
2021-04-16T11:57:40.864852+00:00 app[worker.1]: ^
2021-04-16T11:57:40.864858+00:00 app[worker.1]: SyntaxError: invalid Syntax
解决方法
您使用 command
过滤器作为装饰器,这不是 Pyrogram 更新处理的工作方式。
请阅读有关 how to use Filters 的相应文档。
编辑,因为我的原始答案没有回答手头的问题。
您不能将过滤器本身用作装饰器。过滤器是您可以传递给装饰器的参数,也就是更新处理程序。
from pyrogram import Client,filters
app = Client()
@app.on_message( # the actual decorator
filters.command("start") # the command filter
)
def handler(app,message):
message.reply("hi")
app.run()