文章目录

  • 前言
  • 一、webwx 模块介绍
  • 二、监测自己被群组消息 @



前言

本篇文章作为系列第四篇文章,将实现监测自己是否被群组消息 @ 的功能:

一、webwx 模块介绍

当前支持消息来源: 群组、公众号、联系人、自己
当前支持消息类型: 文本,位置,链接,图片,语音,视频,名片,表情,文件,撤回
不同消息类型所携带的字段也不同,具体如下:

类型

字段

必有字段

'senderType': 字符串类型,取值 “GROUP/SUBSCRIPTION/CONTACT/MYSELF/UNSUPPORTED”, 表示消息来源于群组/公众号/联系人/自己/不支持

'senderName': 字符串类型,表示发送者的身份,由系统分配,@@开头表示群组,@开头表示联系人或者公众号

'msgType': 字符串类型,取值 “TEXT/POSITION/IMAGE/VOICE/VIDEO/CARD/ANIMATION/FILE/REVOKE/UNSUPPORTED”, 表示消息类型是文本/位置/图片/语音/视频/名片/表情/文件/撤回/不支持

'msgId': 字符串类型,表示消息的唯一 id,由系统分配

senderType:

GROUP

'groupNickName': 字符串类型,表示发送者所在的群组昵称

'userNickName': 字符串类型,表示发送者的昵称

'userDisplayName': 字符串类型,表示发送者设置的自己在该群的显示名称,没有则为 ‘’

'meIsAt': 布尔类型,表示自己是否被 @

SUBSCRIPTION

'subscriptionNickName': 字符串类型,表示发送者公众号昵称

CONTACT

'contactNickName': 字符串类型,表示发送者昵称

'contactRemarkName': 字符串类型,表示发送者备注名

MYSELF

'myNickName': 字符串类型,表示自己的昵称

msgType:

TEXT

'content': 字符串类型,表示接收到的消息内容

POSITION

'x': 字符串类型,浮点数,表示纬度

'y': 字符串类型,浮点数,表示经度

'scale': 字符串类型,整数,表示缩放比例

'label': 字符串类型,表示位置的标签名称

'poiname': 字符串类型,表示位置的具体名称

IMAGE

'imgHeight': 整数类型,表示图片高度

'imgWidth': 整数类型,表示图片宽度

'mediaId': 字符串类型,表示图片在服务器的资源 id,由系统分配,用于下载使用

'downloadFunc': 函数类型,表示下载图片的函数

调用 msg['downloadFunc'](msg),将下载图片到当前目录,保存文件名为 img_mediaId.jpg

VOICE

'voiceLength': 整数类型,表示语音时长,单位毫秒

'mediaId': 字符串类型,表示图片在服务器的资源 id,由系统分配,用于下载使用

'downloadFunc': 函数类型,表示下载语音的函数

调用 msg['downloadFunc'](msg),将下载语音到当前目录,保存文件名为 voice_mediaId.mp3

VIDEO

'imgHeight': 整数类型,表示视频高度

'imgWidth': 整数类型,表示视频宽度

'playLength': 整数类型,表示视频时长,单位秒

'mediaId': 字符串类型,表示视频在服务器的资源 id,由系统分配,用于下载使用

'downloadFunc': 函数类型,表示下载视频的函数

调用 msg['downloadFunc'](msg),将下载视频到当前目录,保存文件名为 video_mediaId.mp4

CARD

'username': 字符串类型,表示微信号

'nickname': 字符串类型,表示昵称

'alias': 字符串类型,表示别名

'province': 字符串类型,表示省

'city': 字符串类型,表示城市

'sex': 字符串类型,表示性别,0-未知 1-男 2-女

'regionCode': 字符串类型,表示注册地

ANIMATION

'imgHeight': 整数类型,表示表情高度

'imgWidth': 整数类型,表示表情宽度

FILE

'fileName': 字符串类型,表示文件名

'encryFileName': 字符串类型,表示 encry 文件名

'fileSize': 字符串类型,表示文件大小,单位字节

'mediaId': 字符串类型,表示视频多媒体 id,由系统分配,用于下载使用

'downloadFunc': 函数类型,表示下载文件的函数

调用 msg['downloadFunc'](msg),将下载文件到当前目录,保存文件名为 ‘fileName’ 字段值

REVOKE

'revokedMsgId': 字符串类型,表示被撤回的那条消息的 id

UNSUPPORTED

没有可选字段

二、监测自己被群组消息 @

import webwx

def msg_handle(self, msg):
    if msg['senderType'] == 'GROUP' and msg['msgType'] == 'TEXT':
        if msg['meIsAt'] == True:
            self.send_text(msg['content'], 'filehelper')

if __name__ == '__main__':
    weChat = webwx.webwx()
    weChat.register_msg_handle(msg_handle)
    weChat.login()
    weChat.run()