这篇文章给大家分享的是有关怎么用Python做一个微信机器人自动拉群的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
成都创新互联是一家专业提供涉县企业网站建设,专注与成都网站设计、网站制作、H5高端网站建设、小程序制作等业务。10年已为涉县众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。引言
微信群的用户添加逻辑是 —— 当群人数达到100人后,用户无法再通过扫描群二维码加入,只能让用户先添加群内联系人微信,再由联系人把用户拉进来。这样,联系人员的私人微信会添加大量陌生人,给其带来不必要的打扰,而且纯人工操作,也容易出现纰漏。
那么,是否可以通过代码,做一个自动拉群机器人呢? 由微信机器人来实现自动加群功能,一劳永逸解决人工拉群的麻烦。
当然可以。西秦公子 就用Python 创造了一个微信自动拉群机器人,并把它部署运行在UCloud云平台上。
现在,他把机器人构建过程及代码 都分享了出来,一起来看看吧~
我们在 UCloud 上运行了 Linux中国 的翻译平台,同时,最近我们的另外一个项目 运维密码 发展迅猛,体验群很快就达到了 100 人,达到了100人后,就没有办法让用户通过扫描二维码来加群,只能让用户加我们的微信,然后由我们来把用户拉群。这样十分不便,而且也容易出现纰漏。
于是我们便考虑在云主机上,运行一个微信机器人,由微信机器人来实现加群,免去手动拉群的麻烦。具体实现过程如下:
目录
代码实现;
部署到 UCloud;
代码复盘 及 设计理念解析;
代码实现
我们的核心需求主要是两个:
读取用户添加好友的验证信息
根据验证信息,发送不同的邀请链接
首先,我们要去创建一个机器人的实例,代码如下
from wxpy import * bot = Bot('bot.pkl',console_qr=True)
这两行代码引入了 wxpy ,并生成了一个 bot 实例。这个实例会将我们的登陆信息保存到 bot.pkl 中,这样我们在短时间内的机器人重启时,就不用重复登陆了。
接下来,我们定义一个函数来校验用户的验证信息中,是否有我们需要的关键词。
''' 验证信息 ''' def valid_msg(msg): return '运维密码' in msg.text.lower()
并且定义一个方法,用来邀请用户加入到我们的运维密码工作群中。
''' 定义邀请用户的方法 ''' def invite(user): group = bot.groups().search('“运维密码”体验群') group[0].add_members(user, use_invitation=True)
这个里面的关键是我们要使用bot的groups方法来获取到所有的用户,并使用搜索,取到我们想要的数据。
在这里我是使用了数据的 第一个结果,当然,你也可以在搜索时,使用 ensure_one 方法来保证只返回一个结果,而不是一个数组。
找到我们要邀请的用户以后,就可以使用 group 的 add_memebers 方法来邀请用户加入到群聊。由于我们的群已经到了100人的限制。所以这里将第二个参数设置为 true 。
上述的两个方法,我们基本完成了我们需要使用的部分。
接下来,我们就要让机器人来自动处理我们的请求消息了。
''' 处理加好友信息 ''' @bot.register(msg_types=FRIENDS)def new_friends(msg): user = msg.card.accept() if valid_msg(msg): invite(user) else: user.send('Hello {},你忘了填写加群口令,快回去找找口令吧'.format(user.name))
这里最关键的是第一行的 @bot.register(msg_types=FRIENDS),这行代码是指注册一个监听器,来监听类型是 FRIEDNS 的消息,也就是加好友的消息。
然后定义了一个新的函数 new_friends(msg),在这个函数里,我们定义 user 为接受了用户的信息,并获取他的身份信息。
并且调用 valid_msg 的方法来判断添加好友的信息是否存在,如果返回的结果为真,就调用邀请用户的方法。
部署到UCloud
接下来我们尝试将项目部署到UCloud云主机上:
创建主机
注册 UCloud - 专业云计算服务商
点击左侧的 云主机,然后点击 创建主机
右侧选择 付费方式,点击 立即购买
在支付确认页面,点击 确认支付
购买成功后回到主机管理列表,如下所示:
这里注意记住你的外网IP,下面的ip替换成你的
基础环境安装
由于我们的主机运行的是 CentOS 7.2 ,自带的是 Python 2.7.5 ,而 wxpy 需要运行在 Python 3 下,所以我们首先进行的是 Python 3 的安装。
执行如下命令来安装 Python 3
yum install epel-release yum install python34
接下来安装 Pip
yum install python34-setuptools easy_install-3.4 pip
安装完成 Python 3 和 pip ,接下来我们就可以开始安装 wxpy 了
在命令行中执行
pip3 install -i https://pypi.doubanio.com/simple/ -U wxpy
至此,就完成了基础环境搭建工作,机器人实现代码就可以顺利运行在此云主机上了。
代码复盘 及 设计理念解析
以上就是微信拉群机器人的全部实现过程,最终效果如下图:
就微信机器人来说,最关键的,是要对机器人接受到的信息注册监听器。通过监听消息的类型、消息的内容,来执行对应的操作。
比如我监听的事 FRIENDS 消息,同样的也可以监听好友消息等等。通过不同的监听模式来实现我们的具体功能是核心。如果我们把代码精简一下,最终的代码就是
#!/usr/bin/env python3 # coding: utf-8 from wxpy import * bot = Bot() @bot.register(msg_types=FRIENDS) def new_friends(msg): 处理好友逻辑代码
最少的情况下只需要这些代码,就足够我们启动机器人了。当然,这样并不是最佳实践,代码的可读性还有待提高。
感谢各位的阅读!关于“怎么用Python做一个微信机器人自动拉群”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。