完整的微信个人账户API
itchat的Python项目详细描述
itchat是微信的开源api,微信是中国常用的社交网络应用。
通过python中的itchat访问您的个人微信帐户从未如此简单。
一个微信机器人只需不到30行代码就可以处理所有的基本信息。
类似于itchatmp(微信海量平台的api),只需学习一次,就可以得到两个工具。
现在微信已经成为个人生活的一个重要组成部分,希望本次回购能够帮助您扩展个人微信账号的功能,让微信用户体验更美好。
安装
pip install itchat
简单用法
使用itchat时,如果要向filehelper发送消息,请执行以下操作:
importitchatitchat.auto_login()itchat.send('Hello, filehelper',toUserName='filehelper')
你只需要写这个来回复个人短信。
importitchat@itchat.msg_register(itchat.content.TEXT)deftext_reply(msg):returnmsg.textitchat.auto_login()itchat.run()
对于更高级的用途,您可以继续阅读或浏览document。
尝试
您可以先试用基于此项目的机器人:
这是code。
高级用法
消息字典的特殊用法
你可以在屏幕上打印出来,发现所有的用户和信息都是字典。
但实际上,它们是itchat创建的有用类。
它们有有用的键和有用的界面,例如:
@itchat.msg_register(TEXT)def_(msg):# equals to print(msg['FromUserName'])print(msg.fromUserName)
喜欢:
author=itchat.search_friends(nickName='LittleCoder')[0]author.send('greeting, littlecoder!')
各种类型的消息寄存器
下面是itchat如何配置为获取和回复每日信息的演示。
importitchat,timefromitchat.contentimport*@itchat.msg_register([TEXT,MAP,CARD,NOTE,SHARING])deftext_reply(msg):msg.user.send('%s: %s'%(msg.type,msg.text))@itchat.msg_register([PICTURE,RECORDING,ATTACHMENT,VIDEO])defdownload_files(msg):msg.download(msg.fileName)typeSymbol={PICTURE:'img',VIDEO:'vid',}.get(msg.type,'fil')return'@%s@%s'%(typeSymbol,msg.fileName)@itchat.msg_register(FRIENDS)defadd_friend(msg):msg.user.verify()msg.user.send('Nice to meet you!')@itchat.msg_register(TEXT,isGroupChat=True)deftext_reply(msg):ifmsg.isAt:msg.user.send(u'@%s\u2005I received: %s'%(msg.actualNickName,msg.text))itchat.auto_login(True)itchat.run(True)
命令行二维码
您可以使用此命令在命令行中访问二维码:
itchat.auto_login(enableCmdQR=True)
由于某些字符的宽度与系统不同,您可以调整enablecmdqr来解决此问题。
# for some linux system, width of block character is one instead of two, so enableCmdQR should be 2itchat.auto_login(enableCmdQR=2)
命令行的默认背景色为深色(黑色),如果不是,则可以将enablecmdqr设置为负值:
itchat.auto_login(enableCmdQR=-1)
热重新加载
通过使用以下命令,您可以在一段时间内重新加载程序而无需重新扫描qrcode。
itchat.auto_login(hotReload=True)
用户搜索
通过使用“搜索朋友”,您可以使用四种方法搜索用户:
- 获取自己的用户信息
- 通过用户名获取用户信息
- 获取评论名、微信账号或昵称与功能名称键匹配的用户信息
- 获取评论名、微信账号和昵称与功能匹配的用户信息
方法3、4可以一起使用,下面是演示程序:
# get your own user informationitchat.search_friends()# get user information of specific usernameitchat.search_friends(userName='@abcdefg1234567')# get user information of function 3itchat.search_friends(name='littlecodersh')# get user information of function 4itchat.search_friends(wechatAccount='littlecodersh')# combination of way 3, 4itchat.search_friends(name='LittleCoder机器人',wechatAccount='littlecodersh')
文档中有关于搜索和获取大型平台和聊天室的详细信息。
下载并发送附件
itchat的附件下载功能在msg的文本键中
文件名(图片的默认名称)在msg的文件名键中
下载函数接受一个位置值(包括文件名)并相应地存储附件。
@itchat.msg_register([PICTURE,RECORDING,ATTACHMENT,VIDEO])defdownload_files(msg):msg.download(msg.fileName)itchat.send('@%s@%s'%('img'ifmsg['Type']=='Picture'else'fil',msg['FileName']),msg['FromUserName'])return'%s received'%msg['Type']
如果不需要图片的本地副本,可以不向函数传递任何内容来获取二进制字符串。
@itchat.msg_register([PICTURE,RECORDING,ATTACHMENT,VIDEO])defdownload_files(msg):withopen(msg.fileName,'wb')asf:f.write(msg.download())
多实例
可以使用以下命令打开多实例。
importitchatnewInstance=itchat.new_instance()newInstance.auto_login(hotReload=True,statusStorageDir='newInstance.pkl')@newInstance.msg_register(itchat.content.TEXT)defreply(msg):returnmsg['Text']newInstance.run()
登录和注销后设置回调
<> >登录和注销的回调是通过importtimeimportitchatdeflc():print('finish login')defec():print('exit')itchat.auto_login(loginCallback=lc,exitCallback=ec)time.sleep(3)itchat.logout()
如果没有设置logincallback,qr图片将被删除,命令将被清除。
如果您通过电话退出,也将调用ExtCalBo后撤。
faq
问:为什么我不能发送用utf8编码的文件?
答:这是因为请求的上传设置,您可以将this file(对于py3,您需要this)放入请求包的package s/urllib3中。
问:如何使用这个软件包来使用我的微信作为监视器?
答:有两种方式:与自己的帐户或filehelper通信。
问:为什么有时候我不能发信息?
答:有些帐户根本无法向自己发送消息,因此请改用filehelper。
注释
如果您有任何问题或建议,您可以通过issue
或者在gitter上。