开源微信个人号 API | itchat 微信机器人( 二 )


注册消息优先级多次注册同一类型消息时 , 遵循以下规则:

  • 后注册消息先于先注册消息
  • 带参数消息先于不带参数消息
依据这两个规则 , 上例代码只执行第二个带参数注册的方法就很正常了 , 另外 itchat 还支持动态注册消息 , 一种方法是生成一个守护线程动态注册消息 , 另一种是使用 configured_reply 方法 , 具体如何实现请参考官方文档。
消息回复itchat 提供了五种消息回复的方法:
1. send方法
import itchat# 可发送多种类型消息itchat.send(msg='文本消息', toUserName=None)itchat.send('@img@%s' % '表情图片.gif')itchat.send('@fil@%s' % '文件.docx')itchat.send('@vid@%s' % '测试.mp4')参数说明:
  • msg:消息内容 。'@fil@文件地址'将会被识别为传送文件 , '@img@图片地址'将会被识别为传送图片 , '@vid@视频地址'将会被识别为小视频 。
  • toUserName:发送对象 , 如果留空将会发送给自己 。
返回值:
  • 发送成功:True
  • 失败:False
2. send_msg方法
send_msg(msg='文本消息', toUserName=None)参数说明:
  • msg:消息内容 , 仅文本
  • toUserName:发送对象 , 如果留空将会发送给自己
返回值:
  • 发送成功:True
  • 失败:False
3. send_file、send_img、send_video方法
send_file(fileDir, toUserName=None)send_img(fileDir, toUserName=None)send_video(fileDir, toUserName=None)参数说明:
  • fileDir:文件路径(不存在该文件时将打印无此文件的提醒)
  • toUserName:发送对象 , 如果留空将会发送给自己
返回值:
  • 发送成功:True
  • 失败:False
通过以上几种可以看出 , 几种方法各有特点 , 可以随自己喜好使用 , 不过官方推荐直接使用 send 方法 。
消息内容在上面介绍注册消息时 , 我们知道了 itchat 支持微信回复的以下几种类型的消息 , 包括:微信初始化消息、文本消息、图片消息、小视频消息、地理位置消息、名片消息、 语音消息、动画表情、普通链接和应用分享、音乐链接、群消息、红包消息、系统消息 。接下来我们选几种常见消息和大家简单介绍下 。
文本消息文本消息是最常见的消息 , 基本格式如下:
MsgType: 1# 消息类型 FromUserName: 发送方IDToUserName: 接收方IDContent: 消息内容图片消息MsgType: 3# 消息类型 FromUserName: 发送方IDToUserName: 接收方IDMsgId: 用于获取图片Content:<msg><img length="6503" hdlength="0" /><commenturl></commenturl></msg>小视频消息MsgType: 62# 小视频消息FromUserName: 发送方IDToUserName: 接收方IDMsgId: 用于获取小视频Content:<msg><img length="6503" hdlength="0" /><commenturl></commenturl></msg>篇幅有限 , 先展示这几种消息结构 , 有个大概的认识 , 更多的消息结构请参考官网文档 。
账号类型我们平时使用微信中 , 经常接触的三种账号 , 分别为好友、公众号、群聊 。itchat 为这三种类型的账号分别提供了整体获取和根据条件搜索的方法 , 接下来我们分别介绍下每种类型的使用方式 。
好友1、好友的获取方法为 get_friends , 将会返回完整的好友列表:
  • 其中每个好友为一个字典
  • 列表的第一项为本人的账号信息
  • 传入 update 键为 True 将可以更新好友列表并返回
2、好友的搜索方法为 search_friends , 目前有如下四种搜索方式: