不少人传言微信网页版(https://wx.qq.com/)接口已经被封了,因此全部的微信都不能登陆网页版,这是错误的。python
2019年7月微信对网页版微信进行了动态安全策略调整,致使一大批微信号不能登陆网页版,但有些微信老号仍是能够登陆网页版的,具体哪些微信号能够登陆哪些又不能登陆,这个目前暂不了解!windows
微信机器人项目咱们以前已经写过四篇了:安全
以上文章可关注微信公众号:裸睡的猪 ,查看!服务器
今天咱们来学习微信机器人系列的第五篇:多群转发作同步图文直播!微信
猪哥一年前在建Python学习群的时候就说过,要邀请企业大佬来学习群作直播。app
其实文章早就写好了,可是一直没有找到好的转发软件,因此耽搁了几个月。dom
最近猪哥感受不能再拖了,因此就考虑本身开发一个多群直播项目,使用原来咱们作的微信机器人项目。工具
需求很简单:能作到24个微信大群(共万人)同步转发就能够!学习
相信不少公司企业也会有一样的需求吧!测试
如何作多群直播呢?简单的就是用机器人作二级转发:
为了你们便于理解,猪哥画了一个简单的设计图:根据上图设计,咱们此次功能设计有4个主要元素:主讲群、主讲人、转发群、机器人管理员。
根据上面的设计图,咱们得知首先须要一个直播主讲群,而后直播群里个主讲人,而后还须要加载须要转发的转发群。
这些信息咱们均可以在写在一个配置文件里面。而后咱们在机器人启动的时候,调用加载配置文件的方法,而加载配置文件的方法又去调用加载直播信息的方法!
首先是加载机器人管理员,而后在方法中间去调用加载群信息的方法!
下面是load_live方法的详细代码,主要作三件事:**加载主讲群、检查主讲群里是否有主讲人、加载直播群。**
def load_live(bot):
"""加载直播须要的群"""
# 设置开关
bot.is_live_mode = config.is_live_mode
if not bot.is_live_mode:
return '\n未开启直播模式,可在 config.py 文件中将 is_live_mode 设置为True开启!'
live_status_detail = ''
# 一、加载主讲群
live_group = bot.groups().search(config.live_group)
if len(live_group) < 1:
bot.live_group = None
bot.is_live_mode = False
return f'\n主讲群:未找到群名包含「{config.live_group}」的主讲群!\n开启群直播失败!\n\n可在主讲群中发任意消息,而后管理员使用命令:开启群直播模式,重新加载直播信息!'
elif len(live_group) > 1:
bot.live_group = live_group[0]
live_status_detail += f'\n主讲群:找到多个群名包含「{config.live_group}」的主讲群,默认选取第一个群({live_group[0]})做为主讲群!'
else:
bot.live_group = live_group[0]
# 二、加载主讲人
live_group_members = bot.live_group.members
for member in live_group_members:
if member.name == config.live_speaker:
live_status_detail += f'\n主讲人:「{config.live_speaker}」'
bot.live_speaker = config.live_speaker
break
else:
live_status_detail += f'\n主讲人:主讲群内未找到主讲人「{config.live_speaker}」。\n开启群直播失败!'
bot.is_live_mode = False
return live_status_detail
# 三、加载转发群
forward_groups = search_groups(bot, config.forward_groups)
bot.forward_groups = forward_groups
live_status_detail += f'\n转发群:消息将会转发至这些群:{str(forward_groups)},共{len(forward_groups)}个。\n\n若有遗漏可在这些群中发任意消息,而后管理员使用命令:开启群直播模式,重新加载直播信息!'
return live_status_detail复制代码
这里咱们就加载完了直播须要的4个要素:机器人管理员、主讲群、主讲人、转发群。
所须要的信息都加载完毕以后,咱们就能够来开始作转发了。
大概的思路是:
咱们来看看代码吧咱们再来看看wxcommand.remoteforward(msg)的具体代码吧!
def remote_forward(msg):
"""转发消息"""
forward_groups = []
for group in msg.bot.forward_groups:
msg.forward(group, suffix='')
forward_groups.append(group.name)
time.sleep(random.random())
return forward_groups复制代码
这个方法很简单,循环遍历须要转发的群,而后一个一个发送,发送完毕后有一个一秒之内的随机停顿,这是为了防止消息发送过于频繁致使消息发不出去。
这里关于多群转发的代码就完成了,下面咱们就能够开始测试了。
代码写完咱们就能够开始测试了,测试的总体思路就是:
猪哥在最开始的时候是想的是:用一个机器人,而后转发到24个群里,配置文件大概是这样:可是发现这样会致使消息发不出去,微信提示消息发送过于频繁。
消息怎么发都发不出去,到这里猪哥几乎要放弃了,觉得不能多群转发呢。
猪哥就去网上看看有没有免费的转发软件,而后看了看wetools(一款基于windows的微信运营工具),发现他们付费版的一个微信最多也就能够转发9个群。
因而猪哥猜测是否是一个微信最多只能转发9个群呢?那我用三个微信作转发不就能够吗?上面的配置文件意味着我须要启动三次程序,换三个微信,而后每次更换
forward_groups
配置。
不少同窗还不知道:PyCharm一个项目如何作到同时屡次运行?用三个微信转发24个微信群,看起来是个不错的想法,实践起来是否是能够成功呢?
本次直播测试差很少播了30分钟,彻底正确的运行无消息丢失和机器人掉线。
期间发送过:文字、图片、文件、语音。
24个微信大群同步直播,说实话以前不多有一我的能完成的,我咨询了不少之前作过群直播的同行,他们基本都是人工复制的方式。
可是,直播前一天顺利测试,给了猪哥很大的信心!
实际直播的流程大概是:
由于当时直播,忘记截图24个群的未读消息图,只能找点聊天记录截图给你们看。
其实直播的代码很简单,也很少,可是由于群多,用户体量大因此不免会遇到不少问题,下面猪哥就总结一下遇到的问题:
固然上面讲述的都是一些技术上的问题,关于直播过程当中出现的操做问题,好比:中止打卡后仍然有人打卡影响阅读、直播速度过快、内容不够浅显等问题就不一一列出了,若是你想详细了解这些细节能够加猪哥微信了解。
近些年,咱们guo家慢慢由“中国制造”演变为“中国创造”,这是一件艰巨而振奋人心的事情。
对于咱们作技术的也是如此,工做中不少Ctrl+C(V)操做,不正是咱们理解的“制造”嘛!
将技术应用于生活,去解决出现的一些痛点和难题,创造一些有趣的事情,我认为这才是真正的技术创造!
在解决本身遇到的问题的同时也解决了别人的困难,也许这时,机遇正向你走来!
获取源码,关注微信公众号:裸睡的猪,回复:微信机器人