Itchat是一个开源的微信个人接口。使用python调用itchat的API,可以完成一个能够处理所有信息的微信机器人。比如说你可以写python,利用itchat,去搜索特定的人,然后向这个人发送消息、图片、视频、附件等等。
应用场景
在做自动化测试框架时,往往如果有case没有通过时,一般都会发邮件,或者发送短信进行通知相关人员。因为微信毕竟是现在非常主流的社交工具。如果在case有失败的情况下,如果能通过微信发送信息到相关人,岂不是更好。如果能把自动化运行的报告,最为附件发送给相应人员,那就更加perfect了。
冲着这2点(1是发微信文本消息,2是发微信附件),就是我想了解itchat的原因。
参考
这是网上找的资料。(我只是看了第1个,第2个,第3个)
1. https://www.cnblogs.com/chenbei-blog/p/7799352.html
这个比较适合入门看,基本上看这里,就够用了。
2. http://itchat.readthedocs.io/zh/latest
这里面讲的更全面一点,当然也稍微难一点。
3. http://itchat.readthedocs.io/zh/latest/api/
这里面列举了itchat的所有API。有需求,就可以在这里直接找你需要的API。
4. http://python.jobbole.com/86532/
这篇文章,我只是瞄了一眼,没有细看。貌似有写很意思的功能,如群发助手、好友删除检测。哈哈哈,以后有时间、有需求,再看。
5. https://www.cnblogs.com/Chenjiabing/p/6907397.html
这个文章的笔记,整理的比较细和全面。
发送文本消息《itchat-发送消息.py》
如何发送文本附件《itchat-发送附件.py》
如果需要发送附件的话,就是这么简单,几行代码就搞定了。
遗留问题:登录需要扫二维码
遗留问题:登录需要扫二维码
到这里,利用itchat,在python中发送文本消息、以及附件那时相当简单,只有几行代码。
但是这里有个比较悲催的问题:登录。
Itchat提供了2个登录的方法,login()和auto_login()。
这2个方法都会通过微信扫描二维码登录,但是这种登录的方式确实短时间的登录,并不会保留登录的状态,也就是下次登录时还是需要扫描二维码。
用auto_login()方法,如果加上hotReload==True
。下面是官网的截图说明。
所以它这么说,如果程序关闭,那么在短时间内重新启动程序可以不用重新扫码(但是有可能在手机上会弹出提示,让你确认登录。就像在PC上登录网页版,会在手机上弹出确认登录的提示一样)。那么如果程序不关闭一直运行着,就不用重新扫码。
但是考虑到自动化测试的可持续集成,我可能定时每隔30分钟运行一次。但是30分钟以后,又要进行扫码,这个很显然是不现实的。上面官方说,一定时间内开启,不需要重新扫码,但是没有说清楚,这个一定时间到底是多久。
我尝试去找用户名、密码的登录方式,但是没有找到。我只找到了login()和auto_login()两个方法。希望itchat以后,可以有密码的登录方式。或者由于我的原因没找到这个方式,欢迎告诉我。
登录的API官方说明
下面是这2个API的官方说明:
代码
这里都是我从资料中找的代码,简单练了练手。这边把他截图出来。
《itchat-发送微信消息提醒【偏基础】.py》
《itchat-用户搜索.py》
这里就不截图了,上面《itchat-发送微信消息提醒【偏基础】.py》中已经包括了。
《itchat-发送消息.py》
这里就不截图了,上面已有。
《itchat-发送附件.py》
这里就不截图了,上面已有。
《itchat-各类型消息的注册.py》
《itchat-获取别人发给我的信息,并自动回复.py》
《itchat-退出及登陆完成后调用特定方法.py》
扩展
在官方网站上,还有一个图灵机器人的交互的例子,好像蛮有意思的。以后空了,可以看看。