温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Python怎么实现微信群万人同步直播

发布时间:2021-11-19 15:17:15 来源:亿速云 阅读:156 作者:iii 栏目:编程语言

本篇内容主要讲解“Python怎么实现微信群万人同步直播”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python怎么实现微信群万人同步直播”吧!

一、背景介绍

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

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

Python怎么实现微信群万人同步直播

二、功能设计

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

  1.  新建一个直播主讲群

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

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

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

  5.  继续发消息

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

Python怎么实现微信群万人同步直播

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

三、功能实现

1.加载直播4个元素

根据上面的设计图,我们得知首先需要一个直播主讲群,然后直播群里个主讲人,然后还需要加载需要转发的转发群。

这些信息我们都可以在写在一个配置文件里面。

Python怎么实现微信群万人同步直播

然后我们在机器人启动的时候,调用加载配置文件的方法,而加载配置文件的方法又去调用加载直播信息的方法!

Python怎么实现微信群万人同步直播

首先是加载机器人管理员,然后在方法中间去调用加载群信息的方法!

Python怎么实现微信群万人同步直播

下面是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.实现转发消息

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

大概的思路是:

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

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

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

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

我们来看看代码吧!

Python怎么实现微信群万人同步直播

我们再来看看wx_command.remote_forward(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

这个方法很简单,循环遍历需要转发的群,然后一个一个发送,发送完毕后有一个一秒以内的随机停顿,这是为了防止消息发送过于频繁导致消息发不出去。

这里关于多群转发的代码就完成了,下面我们就可以开始测试了。

四、测试

1.测试流程

代码写完我们就可以开始测试了,测试的整体思路就是:

  •  新建一个主讲群,然后将机器人和主讲人拉进去

  •  新建 24个测试群,把机器人拉进去

  •  启动项目,让机器人进入直播模式

  •  主讲人在群里模拟真实的直播,注意控制直播速度

  •  直播完毕,关闭机器人

2.一个机器人转发24个群

猪哥在最开始的时候是想的是:用一个机器人,然后转发到24个群里,配置文件大概是这样:

Python怎么实现微信群万人同步直播

但是发现这样会导致消息发不出去,微信提示消息发送过于频繁。

Python怎么实现微信群万人同步直播

消息怎么发都发不出去,到这里猪哥几乎要放弃了,以为不能多群转发呢。

3.三个微信转发24个群

猪哥就去网上看看有没有免费的转发软件,然后看了看wetools(一款基于windows的微信运营工具),发现他们付费版的一个微信最多也就可以转发9个群。

于是猪哥猜想是不是一个微信最多只能转发9个群呢?那我用三个微信做转发不就可以吗?

Python怎么实现微信群万人同步直播

上面的配置文件意味着我需要启动三次程序,换三个微信,然后每次更换forward_groups配置。

很多同学还不知道:PyCharm一个项目如何做到同时多次运行?

Python怎么实现微信群万人同步直播

Python怎么实现微信群万人同步直播

Python怎么实现微信群万人同步直播

用三个微信转发24个微信群,看起来是个不错的想法,实践起来是不是可以成功呢?

Python怎么实现微信群万人同步直播

本次直播测试差不多播了30分钟,完全正确的运行无消息丢失和机器人掉线。

期间发送过:文字、图片、文件、语音。

五、实际直播

24个微信大群同步直播,说实话之前很少有一个人能完成的,我咨询了很多以前做过群直播的同行,他们基本都是人工复制的方式。

但是,直播前一天顺利测试,给了猪哥很大的信心!

实际直播的流程大概是:

  1.  提前几个小时修改公告发布晚上群直播消息

  2.  禁止拉新人入群,防止拉发广告的进来

  3.  提前半小时打卡,直播结束后随机踢出几名未打卡占坑的群成员

  4.  直播前5分钟停止打卡,开始准备直播

  5.  晚20:00准时开始直播

  6.  大概20:40直播结束,收集大家反馈意见

六、遇到的问题

其实直播的代码很简单,也不多,但是因为群多,用户体量大所以难免会遇到很多问题,下面猪哥就总结一下遇到的问题:

  1.  最大转发群数问题:最开始猪哥想的是只用一个机器人转发到24个群里,但是消息发不出去,被提示消息过于频繁,最后是看到wetools上他们的最大转发群数是9个,所以才考虑到使用三个微信,每个转发8个群。

    2.  转发模式问题:之前是一个机器人,主讲人直接发给转发机器人,后来变成三个机器人,如何发送消息给三个机器人呢?在朋友的提示下采用了主讲群转发模式。

    3.  加载不到群问题:有时候启动项目后会加载不到你想要的群,这时候需要在群里发送任意消息,再重新开启直播模式,就可以了,切记!切记!

    4.  在实际直播中有个机器人掉线问题:测试过程中未出现机器人掉线,但在实际直播中出现过一次,重新登录这个机器人就好了。

    5.  很多微信都不能登录网页版微信:这个确实很头疼,找几个能登录网页版的还真不好找。

当然上面讲述的都是一些技术上的问题,关于直播过程中出现的操作问题,比如:停止打卡后仍然有人打卡影响阅读、直播速度过快、内容不够浅显等问题就不一一列出了,如果你想详细了解这些细节可以加猪哥微信了解。

到此,相信大家对“Python怎么实现微信群万人同步直播”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI