接收消息 
在上一节 注册消息响应 中讲述了如何注册一个接收指定消息的函数,当接收到消息时,函数被执行时,参数 data: Message 就是接收到的消息的内容。
Message 对象是接收到消息之后预处理化的一个消息数据对象。内含这则消息相关的各项属性,以及针对这则消息的一些操作API。
 该对象主要应用在功能函数和自定义检查中。建议在开发时引入 Message 对象并注解在对应地方。
python
from amiyabot import Message
async def my_verify(data: Message):
    ...
@bot.on_message(verify=my_verify)
async def _(data: Message):
    print('recv:', data.text)
    ...Message 对象 
重要变动 
从 1.9.8 起,如果配置了前缀触发词,Message 对象内的消息文本系列字段将不再包含触发对话的前缀(Commit 99ada6b), 前缀在对话文本中被移除后将赋值到 text_prefix 属性内。
属性 
| 属性 | 类型 | 释义 | 
|---|---|---|
| instance | BotAdapterProtocol | bot 实例 | 
| message | dict | 原始消息字典 | 
| message_id | str | 消息 ID | 
| message_type | str | 消息类型(适用于群聊适配器) | 
| face | List[str] | 消息内表情 ID 列表 | 
| image | List[str] | 消息内图片 URL 列表 | 
| text | str | 消息文本(不包含触发词、中间件处理) | 
| text_digits | str | 消息文本(不包含触发词、中间件处理、中文转数字处理) | 
| text_unsigned | str | 消息文本(不包含触发词、去字符处理) | 
| text_original | str | 消息文本(原始文本) | 
| text_words | List[str] | 消息文本分词 | 
| text_prefix | str | 消息触发词 | 
| at_target | List[str] | 消息内 @ 的对象列表 | 
| is_at | bool | 是否 @ 机器人 | 
| is_admin | bool | 是否为子频道管理员 | 
| is_direct | bool | 是否是私信消息 | 
| user_id | str | 用户 ID | 
| guild_id | str | 频道 ID | 
| src_guild_id | str | 来源频道 ID,私信下有效 | 
| channel_id | str | 子频道 ID | 
| nickname | str | 用户昵称 | 
| avatar | str | 用户头像的 URL | 
| joined_at | ISO8601 timestamp | 用户加入频道的时间 | 
| verify | Verify 对象 | 自定义检查的结果 | 
| time | int | 消息时间 | 
方法 
| 方法名 | 参数 | 释义 | 异步 | 
|---|---|---|---|
| send | reply | 发送一条消息 | 是 | 
| wait | reply,force,max_time,data_filter | 等待用户消息 | 是 | 
| wait_channel | reply,force,clean,max_time,data_filter | 等待子频道消息 | 是 | 
| recall | 撤回消息 | 是 | 
接下来,使用 Message 对象提供的属性完成业务逻辑,并发送消息。