微信群的用户添加逻辑是 —— 当群人数达到100人后,用户无法再通过扫描群二维码加入,只能让用户先添加群内联系人微信,再由联系人把用户拉进来。这样,联系人员的私人微信会添加大量陌生人,给其带来不必要的打扰,而且纯人工操作,也容易出现纰漏。
那么,是否可以通过代码,做一个自动拉群机器人呢? 由微信机器人来实现自动加群功能,一劳永逸解决人工拉群的麻烦。
当然可以!@西秦公子 就用Python 创造了一个微信自动拉群机器人,并把它部署运行在UCloud云平台上。
现在,他把机器人构建过程及代码 都分享了出来,一起来看看吧~
我们在 UCloud 上运行了 Linux中国 的翻译平台,同时,最近我们的另外一个项目 运维密码发展迅猛,体验群很快就达到了 100 人,达到了 100 人后,就没有办法让用户通过扫描二维码来加群,只能让用户加我们的微信,然后由我们来把用户拉群。这样十分不便,而且也容易出现纰漏。
于是我们便考虑在云主机上,运行一个微信机器人,由微信机器人来实现加群,免去手动拉群的麻烦。具体实现过程如下: 
代码实现
我们的核心需求主要是两个:
读取用户添加好友的验证信息
根据验证信息,发送不同的邀请链接
首先,我们要去创建一个机器人的实例,代码如下
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_members 方法来邀请用户加入到群聊。由于我们的群已经到了 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 的方法来判断添加好友的信息是否存在,如果返回的结果为真,就调用邀请用户的方法。
基础环境安装
由于我们的主机运行的是 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实现微信自动拉群机器人相关推荐

  1. 如何快速做一个微信自动拉群机器人 足够简单 足够粗暴

    wechaty 首先,wechaty了解一下,文档链接:https://docs.chatie.io/v/zh/ 只需要6行代码,你就可以通过个人号搭建一个微信机器人功能 ,用来自动管理微信消息,是不 ...

  2. python实现微信自动加群_老司机用python脚本刷微信读书的时长

    微信读书有一个鼓励机制, 一周阅读5小时可兑换10书币,每周日晚清空一周的总读书时长,没兑换的时长不计入下一周(1书币 == 1块钱) 作为一个经常加班的程序猿, 一周刷5个小时, 有点困难, 所以只 ...

  3. python实现微信自动加群_为Python开发人员提供实时代码片段,Kite获1700万美元A轮融资...

    [猎云网(微信号:)]1月29日报道(编译:孙家乐) Kite是一款为Python开发人员提供实时代码片段的工具,它在由Trinity Ventures领投的A轮融资中获得了1700万美元.最新版本的 ...

  4. 利用Python实现微信自动拉人进群,微商必备脚本

    前言 微信群的用户添加逻辑是 -- 当群人数达到100人后,用户无法再通过扫描群二维码加入,只能让用户先添加群内联系人微信,再由联系人把用户拉进来.这样,联系人员的私人微信会添加大量陌生人,给其带来不 ...

  5. 用Python实现微信自动拉人进群!微商福利!

    微信群的用户添加逻辑是 -- 当群人数达到100人后,用户无法再通过扫描群二维码加入,只能让用户先添加群内联系人微信,再由联系人把用户拉进来.这样,联系人员的私人微信会添加大量陌生人,给其带来不必要的 ...

  6. 微信自动查券机器人搭建

    微信自动查券机器人搭建教程分享 一.登陆淘宝联盟 登陆淘宝联盟 地址:https://www.alimama.com 二.配置推广位,获取PID(推荐使用会员PID) 会员推广位PID新增教程 主要目 ...

  7. python编写微信自动抓取文件经历

    python编写微信自动抓取文件经历 背景 前期 写代码&坑 背景 近期疫情肆虐,老师全都线上教学,微信群里多出来一大堆乱七八糟的文件,烦死宝宝了,每次还要看,要是doc还得转换成pdf再放进 ...

  8. 企业微信自动加人机器人

    <企业微信自动加人机器人 - 帮助文档> 发现任何异常, 请分析日志文件 操作流程 确保检测到, 启动时候自动检测, 检测不到手动点击检查按钮 管理 参数配置: 1.每条数据操作间隔, 单 ...

  9. python企业微信群聊_给企业微信加个群机器人

    现在很多企业在使用企业微信或钉钉进行工作交流,我们可以在群里添加一个自定义群机器人,定时发送一些提醒或咨询信息,它可以作为一个小组手,也为工作增加一点乐趣. 群机器人 下面是企业微信和钉钉的群机器人文 ...

最新文章

  1. 北航云计算公开课 01 Introduction to Cloud Computing
  2. 生成随机验证图片--ASP.NET中常用代码之二
  3. 【leetcode】581. Shortest Unsorted Continuous Subarray
  4. binarytreenode”使用 类 模板 需要 模板 参数列表_c++1117 模板核心知识(一)—— 函数模板...
  5. C\C++编程中:相对路径+绝对路径
  6. 用jekyll制作高大上的网站(二)——实际应用
  7. 探索图片填充模式二--CenterCrop模式的实现
  8. 使用IP-guard补丁分发批处理脚本实现分发补丁
  9. 追本溯源,回归根本:第一届区块链技术及应用峰会(BTA)·中国“区块链核心技术”分论坛预告大放送...
  10. 康奈尔大学计算机科学与工程,康奈尔大学的计算机专业介绍
  11. 品优购项目笔记(十四):微信支付
  12. 【031902238崔佳雪】
  13. Tinkpad T480设置U盘启动
  14. Java用Jsoup开发爬虫获取双色球开奖信息
  15. 基于MobileNetv3实现人脸面部表情识别
  16. 计算机网络技术日趋完善并走向,计算机应用基础 10
  17. 为什么要学Java,这8大优势告诉你!
  18. Dart语言之数据类型
  19. “网站处于联机状态,但未对连接尝试做出响应解决方案”解决方案
  20. html5单击修改背景色,js实现点击ul/li等改变背景颜色

热门文章

  1. IDEA安装TFS插件
  2. 音频(一) - 音频基础知识
  3. java计算机毕业设计基于Ssm学生信息管理系统源程序+mysql+系统+lw文档+远程调试
  4. phpcms数据库备份与恢复_数据库备份与恢复方案
  5. Euraka服务端简单配置
  6. 计算星期几(蔡勒公式)
  7. HTML之a标签和base标签
  8. 【经典密码】移位密码和代换密码的实现
  9. Win10任务栏程序设置显示最近使用项
  10. 【GPU】Nvidia CUDA 编程高级教程——利用蒙特卡罗法求解近似值(NVSHMEM)