注意!!!只有能够登录网页版微信的账号,才可以正常使用wxpy库。
官方文档:https://wxpy.readthedocs.io/zh/latest/index.html

机器人对象

—登录和初始化

from wxpy import *
def login():print('状态:登录成功  ',end='')
def login_out():print('微信已退出!')
bot=Bot(login_callback=login,logout_callback=login_out,cache_path='login.pkl',qr_path='login_qr.png')
print('当前用户:'+bot.self.name)
bot.auto_mark_read()#自动清除手机端消息红点提示
bot.enable_puid(path='wxpy_puid.pkl')#启用puid属性 具有稳定性的标识

聊天对象

—接受好友添加

@bot.register(msg_types=FRIENDS)
def auto_accept(msg):if '自定义消息' in msg.text:new_friend=msg.card.accept()#或new_friend=bot.accept_friend(msg.card)new_friend.send('已添加成功了哦!')

—获取用户信息

my_chats=bot.chats().search('A招商代理~欣怡')[0]#按关键字搜索好友
print(my_chats.nick_name)        #原始昵称
print(my_chats.name)             #获取好友名称
my_chats.set_remark_name('小姐姐')#设置好友备注
print(my_chats.remark_name)      #获取好友备注
print(my_chats.sex)              #获取性别 1为男 2为女
print(my_chats.province)         #获取省份名
print(my_chats.city)             #获取城市名
print(my_chats.signature)        #获取个性签名
print(my_chats.is_friend)        #检测是否是好友
with open(my_chats.name+'.jpg','wb') as f:f.write(my_chats.get_avatar())#获取头像print('用户:'+my_chats+' 头像已保存!')输出:
>>状态:登录成功  当前用户:写诗喂狗
>><Friend: 多多>
>>A招商代理~欣怡
>>小姐姐
>>2
>>上海
>>崇明
>>当初的愿望实现了吗
>><Friend: 小姐姐>
>>用户:小姐姐 头像已保存!

—操作聊天对象

friend=bot.friends().search('多多')[0]#按关键字搜索好友
friend.pin()                         #置顶聊天对象
friend.unpin()                       #取消置顶
friend.mark_as_read()                #消除该聊天对象未读红点
friend.add(verify_content='验证消息') #添加当前用户为好友
friend.accept()                      #接受当前用户添加

群聊对象

—创建群聊

bot.create_group(users,topic=None)

参数:

  • users – 用户列表 (不含自己,至少 2 位)
  • topic – 群名称

返回:

  • 若建群成功,返回一个新的群聊对象

返回类型:

  • wxpy.Group

—获取群聊信息

my_groups=bot.groups().search('华夏校园成长群')[0]#关键字搜索群聊
print(my_groups.name)                    #获取群聊名
print(my_groups.owner.name)              #获取群主名
print(my_groups.is_owner)                #检测机器人是否是群主
print(my_groups.self.name)               #获取机器人自己的名称
print(my_groups.members)                 #获取群聊所有成员名输出:
>>华夏校园成长群
>>杨震
>>False
>>写诗喂狗
>>[<Member: 杨震>, <Member: 话别>, <Member: LGE-Decade>, <Member: 写诗喂狗>, <Member: 你是天使吗>, <Member: 希望再爱你一生>, <Member: 陈勇刚>, <Member: 浅唱つ繁花似雨>, <Member: 孤麋鹿>, <Member: 陈佳磊>, <Member: 辉强>, <Member: 霏晖>, <Member: Light>, <Member: Rebecca>, <Member: Amy>]

—群聊操作

my_groups=bot.groups().search(groupname)[0]       #搜索群
#groupname是字符串类型
my_groups.update_group(members_details=True)      #更新群聊的信息
#更新群成员的地区、性别、签名信息
my_groups.add_members(users, use_invitation=False)#向群聊中加入用户
#users可以是一个对象也可以是一个列表
my_groups.remove_members(members)                 #从群聊中移除用户
#members可以是一个对象也可以是一个列表
my_groups.rename_group(name)                      #修改群聊名称
#name是字符串类型

—群成员操作

my_groups=bot.groups().search('华夏校园成长群')[0]#关键字搜索群聊
member=my_groups.members.search('Light')[0]    #获取成员对象
member.remove()                                #群主移除群成员
print(member.name)                             #获取成员名称
print(member.display_name)                     #获取成员在群里的名称

发送消息

—发送文本消息

friend.send_msg('文本消息')

—发送图片消息

friend.send_image('1.png',media_id=None)#media_id=None省略发送过程

—发送文件

friend.send_file('cs.py',media_id=None)#media_id=None省略发送过程

—发送视频

friend.send_video('1.mp4',media_id=None)#media_id=None省略发送过程

—发送名片

friend.send_raw_msg(# 名片的原始消息类型raw_type=42,# 注意 `username` 在这里应为微信 ID,且被发送的名片必须为自己的好友raw_content='<msg username="微信号" nickname="昵称"/>'
)

—发送原始数据

friend.send_raw_msg(# 名片的原始消息类型raw_type=42,# 注意 `username` 在这里应为微信 ID,且被发送的名片必须为自己的好友raw_content='<msg username="wxpy_bot" nickname="wxpy 机器人"/>'
)

参数:

  • raw_type (int) – 原始的整数消息类型
  • raw_content (str) – 原始的消息内容
  • uri (str) – 请求路径,默认为 ‘/webwxsendmsg’
  • msg_ext (dict) – 消息的扩展属性 (会被更新到 Msg 键中)

消息处理

—消息回复

装饰器
@bot.register(chats=None, msg_types=None, except_self=True, run_async=True, enabled=True)
被装饰的函数中使用return '回复内容'msg.reply('回复内容')等效
参数:

  • chats – 消息所在的聊天对象:单个或列表形式的多个聊天对象或聊天类型,为空时匹配所有聊天对象
  • msg_types – 消息的类型:单个或列表形式的多个消息类型,为空时匹配所有消息类型 (SYSTEM 类消息除外)
  • except_self – 排除由自己发送的消息
  • run_async – 是否异步执行所配置的函数:可提高响应速度
  • enabled – 当前配置的默认开启状态,可事后动态开启或关闭

msg_types消息类型可选参数:

# 文本
TEXT = 'Text'
# 位置
MAP = 'Map'
# 名片
CARD = 'Card'
# 提示
NOTE = 'Note'
# 分享
SHARING = 'Sharing'
# 图片
PICTURE = 'Picture'
# 语音
RECORDING = 'Recording'
# 文件
ATTACHMENT = 'Attachment'
# 视频
VIDEO = 'Video'
# 好友请求
FRIENDS = 'Friends'
# 系统
SYSTEM = 'System'
friends=bot.friends()
@bot.register(friends)
def reply(msg):msg.reply('回复的内容')
embed()

—基本属性

friends=bot.friends()
@bot.register(friends)
def reply(msg):print(msg.type)#获取消息类型print(msg.bot)#获取消息发送者print(msg.id)#获取消息的唯一ID
embed()#给机器人发送任意信息后
输出:
>>Text
>><Bot: 写诗喂狗>
>>2028300233675110636

—内容数据

@bot.register(friends)
def reply(msg):print(msg.text)                      #消息文本内容msg.get_file(save_path=msg.file_name)#保存文件print(msg.file_name)                 #获取文件名print(msg.file_size)                 #获取文件大小print(msg.media_id)                  #获取媒体文件IDprint(msg.raw)                       #获取文件原始数据
embed()
输出:
>>None
>>190618-220331.png
>>
>>{'MsgId': '1957284160852580052', 'FromUserName': '@d167feda5970b4fcd530317af31d772f4528ca73637d2b804104a7ef01dee5f9', 'ToUserName': '@484d6acf1c391ff77040aaa96443069c70e49f7e2c04d8f2319c25a17a210984', 'MsgType': 3, 'Content': '@76637937c215aa3a8b650558e92eb237c121210366184637a8d664712b8694db3257ba863fae934c7fb3124485e251556def2352dd61b44f1ef8c4d43da3ce09ac51a59caf08be7f54c93b989769ef42d64e37633b2e0986dd5de634fb53077cbc06ca76c09243d00f73a3a63d95c3fdfea24ff942a4c1319d8a61d1af75f3a3893d3b3b1666f46e33b5ae01e3155efeb85a56df03a9a9153353a01c4ec0ce4d000495dbcc472e072adc591ee8bd587ce3e82b48f4bdc17e708c79536c2345c67ba94aa8b67385504bbdfeede6d244788ee4df3e19c5712c6d6f9d6390da93c1c470d96d786f6caef51e601d2dee8df8a47fee34f1d9d287c8ec30264b53befe2b5b92652361e1bff72e36ec9935e663960193eb00396680274bd664c7449ec686dcdbaf5a470d782e1914a20dbd30eb1939a87d486fbddc72f6135ec68e370f8283bafb73356a11fce573adc2023781c8824fd35ceeec6c2c2c37b28bc5038a27f6de6be55b36ab16842fa2886b38cebd930427d20d89aed19d5fc85f18e12f99c3fc0f3d53462e2370544fc27b15b8b2a3710a825dfb4ec210fcfd2af5e24b8f6904ebfa0974abb3b2eaeac4c5088090c210ad8910328a62daa53d3567e5dee2280458c37ffc8d6c675f3d78bcef0e5496816f146b47dbd99c519fa9060cceda9da0a8999e9a1e8e4778d81dcde714cbe1a469c58f9c33e7f93d4fd6c80cff04cc27dc211c4d8afd68b80a4a1a8459847236521b3f044660bf584360ea151d7b73ba9aae11993eaf65dc40bdf3a42abd3b404654606550b959f0fc8ab63aa6b1c2d6181fec2dfeeb03f8f63a2445b1637d584a38b1627a7c72a2ec559263ab5e3b5eb16152353298af7d4b4750337c2f43a0376a7f5bb4bb9c775d0ab8ccadd6078f7b7527118836e778a8a6dc8958429c5dc87a1f77ee9b5e207638022bbbb358a32e326486978909ea828c9b3a9bd0b9e4ce6d3f613037272dcd4622f9ec', 'Status': 3, 'ImgStatus': 2, 'CreateTime': 1560866606, 'VoiceLength': 0, 'PlayLength': 0, 'FileName': '190618-220331.png', 'FileSize': '', 'MediaId': '', 'Url': '', 'AppMsgType': 0, 'StatusNotifyCode': 0, 'StatusNotifyUserName': '', 'RecommendInfo': {'UserName': '', 'NickName': '', 'QQNum': 0, 'Province': '', 'City': '', 'Content': '', 'Signature': '', 'Alias': '', 'Scene': 0, 'VerifyFlag': 0, 'AttrStatus': 0, 'Sex': 0, 'Ticket': '', 'OpCode': 0}, 'ForwardFlag': 0, 'AppInfo': {'AppID': '', 'Type': 0}, 'HasProductId': 0, 'Ticket': '', 'ImgHeight': 80, 'ImgWidth': 120, 'SubMsgType': 0, 'NewMsgId': 1957284160852580052, 'OriContent': '', 'EncryFileName': '', 'Type': 'Picture', 'Text': <function get_download_fn.<locals>.download_fn at 0x00000131A155B0D0>}

—用户相关

@bot.register(friends)
def reply(msg):print(msg.chat)         #消息所在的聊天对话#对于自己发送的消息,为消息的接收者#对于别人发送的消息,为消息的发送者print(msg.sender)       #消息的发送者print(msg.reciver)      #消息的接受者print(msg.member)       #消息的实际发送者print(msg.card)         #好友请求中的请求用户 名片消息中的推荐用户
embed()

—群聊相关

groups=bot.groups()
@bot.register(groups)
def reply(msg):print(msg.is_at)#群聊中被@时返回True
embed()

—时间相关

@bot.register(friends)
def reply(msg):print(msg.create_time)#服务端发送数据print(msg.recive_time)#本地接收时间print(msg.latency)    #消息延时秒数
embed()
输出:
>>2019-06-18 22:18:30

—其他属性

@bot.register(friends)
def reply(msg):print(msg.url)     #分享消息的urlprint(msg.location)#获取位置信息
embed()
输出:
>>http://apis.map.qq.com/uri/v1/geocoder?coord=30.467726,114.413124
>>{'x': 30.467726, 'y': 118.413124, 'scale': 16, 'label': '位置名', 'maptype': 0, 'poiname': '[位置]', 'poiid': ''}
@bot.register(friends)
def reply(msg):print(msg.img_height)   #图片高度print(msg.img_width)    #图片宽度print(msg.play_length)  #视频长度print(msg.voice_lentgth)#语音长度embed()
输出:
>>120
>>120

—回复方法

msg.reply(...)
Message.reply_image(...)
Message.reply_file(...)
Message.reply_video(...)
Message.reply_msg(...)
Message.reply_raw_msg(...)

—消息转发

friend=bot.friends().search('多多')[0]
@bot.register(friend)
def reply(msg):#将收到的消息转发回去msg.forward(friend,prefix='这是前缀消息',suffix='这是后缀消息')embed()

参数:

  • chat (Chat) – 接收转发消息的聊天对象
  • prefix (str) – 转发时增加的 前缀 文本,原消息为文本时会自动换行
  • suffix (str) – 转发时增加的 后缀 文本,原消息为文本时会自动换行
  • raise_for_unsupported (bool) – 为 True 时,将为不支持的消息类型抛出
    NotImplementedError 异常

【python】wxpy--微信接口库相关推荐

  1. python连接微信接口开发教程_Python调用微信公众平台接口操作示例

    本文实例讲述了Python调用微信公众平台接口操作.分享给大家供大家参考,具体如下: 这里使用的是Django,其他类似 # coding=utf-8 from django.http import ...

  2. python链接微信接口开发教程_Python调用微信公众平台接口操作示例

    本文实例讲述了Python调用微信公众平台接口操作.分享给大家供大家参考,具体如下: 这里使用的是Django,其他类似 # coding=utf-8 from django.http import ...

  3. python实现微信接口(itchat)

    安装 sudo pip install itchat 登录 itchat.auto_login() 这种方法将会通过微信扫描二维码登录,但是这种登录的方式确实短时间的登录,并不会保留登录的状态,也就是 ...

  4. python itchat实现调用微信接口的第三方模块方法

    itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单. 使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人. 当然,该api的使用远不止一个机器人,更多的功能等 ...

  5. itchat 调用微信网页版 python 调用微信

    itchat是一个开源的微信个人号接口,使用python调用微信从未如此简单. 使用不到三十行的代码,你就可以完成一个能够处理所有信息的微信机器人. 当然,该api的使用远不止一个机器人,更多的功能等 ...

  6. python wxpy模块学习

    python wxpy 微信机器人 itchat 模块 教学文档:itchat. wxpy 模块 教学文档 : wxpy. 基础阶段 wxpy模块 的安装 命令行安装: pip install wxp ...

  7. python使用微信库wxpy报错问题解决

    今天安装python第三方微信库wxpy,网上吹的神乎其神,按耐不住好奇的心情,准备测试下相关功能. 安装第三库 pip install -U wxpy -i "https://pypi.d ...

  8. Python:企业微信接口封装库work-weixin-api

    Work Weixin Api 企业微信接口封装库 Github: https://github.com/mouday/work-weixin-api 目前实现了简单的发送消息功能,后序按照业务继续增 ...

  9. python自动回复机器人手机版_GitHub - HZQHZA/wxpy: Python 写 微信聊天 根据 自动回复 接入机器人 等等.......

    wxpy Python 写 微信聊天 根据 自动回复 接入机器人 等等.... wxpy: 用 Python 玩微信 #项目介绍 wxpy登录就给好友发消息 发图片   自动回复信息   添加好友自动 ...

  10. python 图灵 微信 菜谱_python——wxpy模块实现微信尬聊(基于图灵机器人)-Go语言中文社区...

    wxpy(微信机器人)是在itchat基础上开发的微信个人功能服务API,基本可以实现微信各种拓展功能, 支持pip安装,适用2.7以及3.4-3.6的python版本 通过# 导入模块 from w ...

最新文章

  1. 上海交大情感脑电数据集(SEED)简介
  2. 戴尔坐拥100亿现金 收购目标剑指何方?
  3. 12月份最后一期天下足球
  4. Tramp data In Kernel
  5. 《计算机组成原理》课程设计任务书——TEC-2实验系统——微程序设计
  6. 使用IntelliJ IDEA11创建Java Web程序
  7. Firemonkey Android IOS 图标
  8. Interlocked.CompareExchange
  9. SpringBoot (14)---使用Redis缓存
  10. 掌阅科技前三季度净利润1.66亿元 同比增长53.75%
  11. deian   授权用户 sudo权限
  12. Javascript:json数据根据某一个字段进行排序
  13. Java Spring Security 安全框架:(四)PasswordEncoder 密码解析器详解
  14. Opencv函数 rectangle函数与Rect函数的用法
  15. 关于GTPv1协议解析
  16. excel 按列拆分合并 表格操作及脚本
  17. 深蓝-视觉slam-第七节习题
  18. 计算机学科专业基础综合科目(408)
  19. centos7安装mysql5.7.18.tat.gz
  20. 杂谈:火星救援和未来城市

热门文章

  1. 0. DRF之软件开发模式CBV源码解析
  2. CodeForces - 1436D Bandit in a City
  3. 云上故事 | “电”亮数字生活,阿里云混合云助力南方电网智能调度
  4. 南阳oj 语言入门 房间安排
  5. 职场必看的十部经典电影
  6. 实验3 STP简单配置及介绍
  7. 电子计算机的加减乘除叫做什么,计算机中加减乘除叫什么键
  8. Word VBA自动排版(1)-新建窗口,并且设置并列分布
  9. 所有科技人员是懂计算机的,指出违反什么规律.PDF
  10. 流浪地球2真实成本多少?怎么参与?找谁参与?安全可靠吗?