在Aiogram中,可以使用@dp.message_handler()
装饰器来定义处理消息的处理程序。下面是一个解决"Aiogram的message_handler问题"的示例代码:
from aiogram import Bot, Dispatcher, types
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher import FSMContext
# 创建Bot实例
bot = Bot(token='YOUR_TOKEN')
# 创建Dispatcher实例
storage = MemoryStorage()
dp = Dispatcher(bot, storage=storage)
@dp.message_handler(commands=['start'])
async def start(message: types.Message):
await message.reply("Hello! Welcome to my bot.")
@dp.message_handler()
async def echo(message: types.Message):
await message.reply(message.text)
if __name__ == '__main__':
# 启动长轮询机制
from aiogram import executor
executor.start_polling(dp)
在上面的代码中,我们定义了两个处理程序。第一个处理程序使用@dp.message_handler(commands=['start'])
装饰器,它会在用户发送"/start"命令时被调用,并回复一条欢迎消息。
第二个处理程序使用@dp.message_handler()
装饰器,它会处理所有其他类型的消息,并将接收到的消息内容回复给用户。
在if __name__ == '__main__':
部分,我们使用executor.start_polling(dp)
启动了Aiogram的长轮询机制,它会不断地从Telegram服务器接收新消息并分发给相应的处理程序。
你可以根据自己的需求在这个示例代码的基础上进行修改和扩展。