Appearance
事件系统
PyWechat 使用事件驱动模型。通过 @wechat.handle(event_type) 装饰器注册事件处理函数。
基本用法
python
from pywechat import WeChat, events
wechat = WeChat("4.1.2.17")
@wechat.handle(events.TEXT_MESSAGE)
def on_text(bot: WeChat, event: dict):
print(f"收到消息:{event}")监听所有事件
python
@wechat.handle(events.ALL_MESSAGE)
def on_all(bot: WeChat, event: dict):
print(f"事件:{event}")事件数据结构
所有事件回调接收一个 event 字典,基本结构如下:
python
{
"client_id": 1, # 客户端ID
"type": 11046, # 事件类型码
"data": { # 事件数据(因事件类型而异)
"from_wxid": "wxid_xxx",
"to_wxid": "wxid_yyy",
"msg": "Hello",
...
}
}事件分类
| 分类 | 说明 |
|---|---|
| 连接事件 | 微信连接/断开、登录/注销 |
| 消息事件 | 文本、图片、语音等各类消息 |
| 群组事件 | 群成员变化、入群退群 |
| 好友事件 | 好友增减 |
完整事件列表
| 事件常量 | 类型码 | 说明 |
|---|---|---|
ALL_MESSAGE | 0 | 全部消息 |
WECHAT_CONNECT_MESSAGE | 11024 | 接口就绪通知 |
USER_LOGIN_MESSAGE | 11025 | 用户登录成功 |
USER_LOGOUT_MESSAGE | 11026 | 用户注销通知 |
LOGIN_QR_CODE_MESSAGE | 11087 | 登录二维码 |
WINDOW_HANDLE_CHANGE_MESSAGE | 11088 | 窗口句柄变化 |
CHAT_CHANGE_MESSAGE | 11091 | 聊天对象变化 |
TEXT_MESSAGE | 11046 | 文本消息 |
IMAGE_MESSAGE | 11047 | 图片消息 |
VOICE_MESSAGE | 11048 | 语音消息 |
FRIEND_REQUEST_MESSAGE | 11049 | 好友请求消息 |
CARD_MESSAGE | 11050 | 名片消息 |
VIDEO_MESSAGE | 11051 | 视频消息 |
EMOJI_MESSAGE | 11052 | 表情消息 |
LOCATION_MESSAGE | 11053 | 位置消息 |
LINK_CARD_MESSAGE | 11054 | 链接卡片消息 |
FILE_MESSAGE | 11055 | 文件消息 |
MINI_PROGRAM_MESSAGE | 11056 | 小程序消息 |
TRANSFER_MESSAGE | 11057 | 转帐消息 |
SYSTEM_MESSAGE | 11058 | 系统消息 |
REVOKE_MESSAGE | 11059 | 撤回消息 |
OTHER_MESSAGE | 11060 | 其他消息 |
OTHER_APP_MESSAGE | 11061 | 其他应用类型消息 |
QR_CODE_PAYMENT_MESSAGE | 11095 | 二维码收款通知 |
GROUP_MEMBER_INCREASE_MESSAGE | 11098 | 群成员新增 |
GROUP_MEMBER_DECREASE_MESSAGE | 11099 | 群成员减少 |
GROUP_INCREASE_MESSAGE | 11100 | 群增加 |
GROUP_DECREASE_MESSAGE | 11101 | 退群或被踢 |
FRIEND_INCREASE_MESSAGE | 11102 | 好友新增 |
FRIEND_DECREASE_MESSAGE | 11103 | 好友删除 |
WECHAT_DISCONNECT_MESSAGE | 11023 | 微信断开连接 |