Skip to content

事件系统

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_MESSAGE0全部消息
WECHAT_CONNECT_MESSAGE11024接口就绪通知
USER_LOGIN_MESSAGE11025用户登录成功
USER_LOGOUT_MESSAGE11026用户注销通知
LOGIN_QR_CODE_MESSAGE11087登录二维码
WINDOW_HANDLE_CHANGE_MESSAGE11088窗口句柄变化
CHAT_CHANGE_MESSAGE11091聊天对象变化
TEXT_MESSAGE11046文本消息
IMAGE_MESSAGE11047图片消息
VOICE_MESSAGE11048语音消息
FRIEND_REQUEST_MESSAGE11049好友请求消息
CARD_MESSAGE11050名片消息
VIDEO_MESSAGE11051视频消息
EMOJI_MESSAGE11052表情消息
LOCATION_MESSAGE11053位置消息
LINK_CARD_MESSAGE11054链接卡片消息
FILE_MESSAGE11055文件消息
MINI_PROGRAM_MESSAGE11056小程序消息
TRANSFER_MESSAGE11057转帐消息
SYSTEM_MESSAGE11058系统消息
REVOKE_MESSAGE11059撤回消息
OTHER_MESSAGE11060其他消息
OTHER_APP_MESSAGE11061其他应用类型消息
QR_CODE_PAYMENT_MESSAGE11095二维码收款通知
GROUP_MEMBER_INCREASE_MESSAGE11098群成员新增
GROUP_MEMBER_DECREASE_MESSAGE11099群成员减少
GROUP_INCREASE_MESSAGE11100群增加
GROUP_DECREASE_MESSAGE11101退群或被踢
FRIEND_INCREASE_MESSAGE11102好友新增
FRIEND_DECREASE_MESSAGE11103好友删除
WECHAT_DISCONNECT_MESSAGE11023微信断开连接

基于 MIT 许可证发布