我大致能想到的应用场景,现在有以下两个:
1.
如果你有一个群已到500人,还有人要加进来,那就要建一个新群。 新群一开始往往人气氛围不如老群,光靠管理员吆喝也不够。能不能把新群和老群的聊天信息打通,新加进来的朋友能看到老群的聊天信息,就会感到氛围不一样,微信机器人就能实现群与群之间的聊天信息自动转发。
2.
现在有比较多的学习成长群、跑步锻炼群,都在群里打卡,月底统计,有奖有罚。比如“海乐樱运动营”微信群,每个月做运动打卡的排行榜,再进行抽奖,发奖品鼓励。之前还有朋友拉我进一个背单词的群,月初交50元保证金,月底统计打卡情况,任务完成返还保证金,没有完成钱就捐了,他们是统一捐赠给山区失学儿童。
其实有很多APP都实现了以上的打卡记录、统计分析的功能,也有的采用了押金监督功能,为什么大家还是用微信群打卡,专门人去记录统计呢,可能原因在于微信群里可以及时反馈鼓励,有氛围。
微信机器人就能实现打卡的自动记录,再完善一下程序可以生成排名和数据分析。
使用itchat
不到30行代码,就能实现上面的微信聊天信息自动转发的功能。
一、Python微信库: itchat
文档说明:http://itchat.readthedocs.io/zh/latest/ , itchat是一个开源的微信个人号接口,使用python调用微信。
安装:
pip install itchat
快速入门:
import itchat itchat.auto_login() itchat.send('Hello, filehelper', toUserName='filehelper')
运行一下这段代码,会下载一个二维码,微信打开扫一下,程序会给你的“文件传输助手”发送一条消息Hello, filehelper
要回复你自己发送的文本信息:
import itchat@itchat.msg_register(itchat.content.TEXT)def text_reply(msg): return msg['Text'] itchat.auto_login() itchat.run()
这时候你发一条,机器人就会回复你刚刚发的内容。就是一个应声虫,哈哈哈。如果你登录了电脑上的微信,需要先退出来。
二、微信群聊天信息自动转发机器人
实现方法:先获取需要转发微信群的ID,再转发消息。代码很少,直接上。
#coding=utf-8import itchatfrom itchat.content import * groups={}@itchat.msg_register([TEXT, SHARING], isGroupChat=True)def group_reply_text(msg): source = msg['FromUserName'] # 来自哪一个群信群 groups[source]=msg['ActualNickName'] # 把群聊的ID和名称加入groups,ActualNickName不是微信群的名字。 print msg['Content'] # 处理文本消息 if msg['Type'] == TEXT: for item in groups.keys(): if not item == source: itchat.send('robot --> %s:\n%s' % (msg['ActualNickName'], msg['Content']), item) # 处理分享消息 elif msg['Type'] == SHARING: for item in groups.keys(): if not item == source: itchat.send('robot --> %s (share): %s\n%s' % ( msg['ActualNickName'], msg['Text'], msg['Url']), item) itchat.auto_login() itchat.run()
(代码全部都在这里,不需要另外下载)
我在做的时候发现一个问题,程序跑起来,每次获取到的微信群ID不是一个固定的值,一开始,我用户自己的微信号测试,因为加了比较多的群,要先获取、保存那两个想打通聊天信息的微信群,就需要一些判断或指定特殊的信号标记。后来跟宏伦工作室 讨论请教,觉得用一个专门的微信号来实现,就比较简单。我之前的一个小号来做测试。
看一下效果图:
要实现与这个机器人的对话聊天的功能,只要加上图灵机器人接口就行了。
参考:
Python微信库:itchat
基于itchat实现微信群消息同步机器人
作者:向右奔跑
链接:https://www.jianshu.com/p/7ce35738118f