Python如何实现微信群万人同步直播?

很多人传言微信网页版(https://wx.qq.com/)接口已经被封了,所以所有的微信都不能登录网页版,这是错误的。

2019年7月微信对网页版微信进行了动态安全策略调整,导致一大批微信号不能登录网页版,但有些微信老号还是可以登录网页版的,具体哪些微信号可以登录哪些又不能登录,这个目前暂不了解!

微信机器人项目我们之前已经写过四篇了:

[Python创建微信机器人]:详细讲解如何使用wxpy库创建微信机器人。

[如何用机器人监听老板微信?]:监听群成员聊天信息做转发。

[python实现微信消息防撤回]:讲解微信撤回消息的原理并实现将撤回消息转发。

[超详细Pycharm部署项目视频教程]:详细讲解如何将微信机器人项目部署到Linux服务器上。

以上文章可关注微信公众号:裸睡的猪 ,查看!

今天我们来学习微信机器人系列的第五篇:多群转发做同步图文直播

一、背景介绍

猪哥一年前在建Python学习群的时候就说过,要邀请企业大佬来学习群做直播

其实文章早就写好了,但是一直没有找到好的转发软件,所以耽搁了几个月。

最近猪哥感觉不能再拖了,所以就考虑自己开发一个多群直播项目,使用原来我们做的微信机器人项目。

需求很简单:能做到24个微信大群(共万人同步转发就可以

相信很多公司企业也会有同样的需求吧!

在这里插入图片描述

二、功能设计

如何做多群直播呢?简单的就是用机器人做二级转发:

新建一个直播主讲群

将三个机器人和主讲人拉进群里

主讲人发到群里的消息机器人都自动转发到群里

机器人转发完毕后在主讲群回复

继续发消息

为了大家便于理解,猪哥画了一个简单的设计图:

在这里插入图片描述


根据上图设计,我们这次功能设计有4个主要元素:主讲群、主讲人、转发群、机器人管理员

三、功能实现 1.加载直播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 = '' # 1、加载主讲群 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] # 2、加载主讲人 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 # 3、加载转发群 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个要素:机器人管理员、主讲群、主讲人、转发群

2.实现转发消息

所需要的信息都加载完毕之后,我们就可以来开始做转发了。

大概的思路是:

定义一个接收群消息的方法

接收到群消息就判断这条消息需不需要转发,判断条件是:开启直播模式+当前消息是主讲群内的+发消息的人是主讲人

如果满足上诉三个条件,则将消息转发到群里

转发完毕在主讲群内回复:一转发完毕,这时主讲人就可以讲下一句话

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfdwf.html