参考来自:https://itchat.readthedocs.io/zh/latest/api/
#coding=utf-8import itchatfrom itchat.content import TEXTfrom itchat.content import *import sysimport timeimport rereload(sys)sys.setdefaultencoding('utf8')import os@itchat.msg_register([TEXT,PICTURE,FRIENDS,CARD,MAP,SHARING,RECORDING,ATTACHMENT,VIDEO],isGroupChat=True)def receive_msg(msg): groups = itchat.get_chatrooms(update=True) friends = itchat.get_friends(update=True) print "群数量:",len(groups) for i in range(0,len(groups)): print i+1,"--",groups[i]['NickName'],groups[i]['MemberCount'],"人" print "好友数量",len(friends)-1 for f in range(1,len(friends)):#第0个好友是自己,不统计 if friends[f]['RemarkName']: # 优先使用好友的备注名称,没有则使用昵称 user_name = friends[f]['RemarkName'] else: user_name = friends[f]['NickName'] sex = friends[f]['Sex'] print f,"--",user_name,sexitchat.auto_login(hotReload=True)itchat.run()
效果:
好友:
# 获取自己的用户信息,返回自己的属性字典itchat.search_friends()# 获取特定UserName的用户信息itchat.search_friends(userName='@abcdefg1234567')# 获取任何一项等于name键值的用户itchat.search_friends(name='wxceshi')# 获取分别对应相应键值的用户itchat.search_friends(wechatAccount='wceshi')# 三、四项功能可以一同使用itchat.search_friends(name='wxceshi', wechatAccount='wcceshi')
公众号:
公众号的获取方法为get_mps,将会返回完整的公众号列表。其中每个公众号为一个字典传入update键为True将可以更新公众号列表并返回import itchatitchat.auto_login(hotReload=True)mpsList=itchat.get_mps(update=True)[1:]total=0for it in mpsList: print(it['NickName']+':'+it['Signature']) total=total+1print('公众号的数目是%d'%total)公众号的搜索方法为search_mps,有两种搜索方法: 1. 获取特定UserName的公众号 2. 获取名字中含有特定字符的公众号如果两项都做了特定,将会仅返回特定UserName的公众号,下面是示例程序:# 获取特定UserName的公众号,返回值为一个字典itchat.search_mps(userName='@abcdefg1234567')# 获取名字中含有特定字符的公众号,返回值为一个字典的列表itchat.search_mps(name='gzh')# 以下方法相当于仅特定了UserNameitchat.search_mps(userName='@abcdefg1234567', name='gzh')
群聊:
群聊的获取方法为get_chatrooms,将会返回完整的群聊列表。其中每个群聊为一个字典传入update键为True将可以更新群聊列表并返回通讯录中保存的群聊列表 群聊列表为后台自动更新,如果中途意外退出存在极小的概率产生本地群聊消息与后台不同步 为了保证群聊信息在热启动中可以被正确的加载,即使不需要持续在线的程序也需要运行itchat.run() 如果不想要运行上述命令,请在退出程序前调用-itchat.dump_login_status(),更新热拔插需要的信息import itchatitchat.auto_login(hotReload=True)#itchat.run()mpsList=itchat.get_chatrooms(update=True)[1:]total=0for it in mpsList: print(it['NickName']) total=total+1print('群聊的数目是%d'%total)#显示所有的群聊,包括未保存在通讯录中的,如果去掉则只是显示在通讯录中保存的itchat.dump_login_status()群聊的搜索方法为search_chatrooms,有两种搜索方法: 1. 获取特定UserName的群聊 2. 获取名字中含有特定字符的群聊如果两项都做了特定,将会仅返回特定UserName的群聊,下面是示例程序:# 获取特定UserName的群聊,返回值为一个字典itchat.search_chatrooms(userName='@abcdefg1234567')# 获取名字中含有特定字符的群聊,返回值为一个字典的列表itchat.search_chatrooms(name='LittleCoder')# 以下方法相当于仅特定了UserNameitchat.search_chatrooms(userName='@abcdefg1234567', name='LittleCoder')群聊用户列表的获取方法为update_chatroom。 群聊在首次获取中不会获取群聊的用户列表,所以需要调用该命令才能获取群聊的成员 该方法需要传入群聊的UserName,返回特定群聊的用户列表memberList = itchat.update_chatroom('bcdefg67')创建群聊、增加、删除群聊用户的方法如下所示: 由于之前通过群聊检测是否被好友拉黑的程序,目前这三个方法都被严格限制了使用频率 删除群聊需要本账号为群管理员,否则会失败 将用户加入群聊有直接加入与发送邀请,通过useInvitation设置 超过40人的群聊无法使用直接加入的加入方式,特别注意memberList = itchat.get_friends()[1:]# 创建群聊,topic键值为群聊名chatroomUserName = itchat.create_chatroom(memberList, 'test chatroom')# 删除群聊内的用户itchat.delete_member_from_chatroom(chatroomUserName, memberList[0])# 增加用户进入群聊itchat.add_member_into_chatroom(chatroomUserName, memberList[0], useInvitation=False)
新闻热点
疑难解答