首頁 > 易卦

Python如何實現24個微信大群萬人同步轉發直播?

作者:由 AI科技大本營 發表于 易卦日期:2023-02-03

怎麼測試群裡的機器人

Python如何實現24個微信大群萬人同步轉發直播?

作者 | 豬哥66

今天我們來學習微信機器人多群轉發做同步圖文直播!

一、背景介紹

豬哥一年前在建Python學習群的時候就說過,要邀請企業大佬來學習群做直播。

其實文章早就寫好了,但是一直沒有找到好的轉發軟體,所以耽擱了幾個月。

最近豬哥感覺不能再拖了,所以就考慮自己開發一個多群直播專案,使用原來我們做的微信機器人專案。

需求很簡單:能做到24個微信大群(共萬人)同步轉發就可以!

相信很多公司企業也會有同樣的需求吧!

Python如何實現24個微信大群萬人同步轉發直播?

二、功能設計

如何做多群直播呢?簡單的就是用機器人做二級轉發:

新建一個直播主講群

將三個機器人和主講人拉進群裡

主講人發到群裡的訊息機器人都自動轉發到群裡

機器人轉發完畢後在主講群回覆

繼續發訊息

為了大家便於理解,豬哥畫了一個簡單的設計圖:

Python如何實現24個微信大群萬人同步轉發直播?

根據上圖設計,我們這次功能設計有4個主要元素:主講群、主講人、轉發群、機器人管理員。

三、功能實現

1.載入直播4個元素

根據上面的設計圖,我們得知首先需要一個

直播主講群

,然後直播群裡個主講人,然後還需要載入需要轉發的

轉發群

這些資訊我們都可以在寫在一個配置檔案裡面。

Python如何實現24個微信大群萬人同步轉發直播?

然後我們在機器人啟動的時候,呼叫載入配置檔案的方法,而載入配置檔案的方法又去呼叫載入直播資訊的方法!

Python如何實現24個微信大群萬人同步轉發直播?

首先是載入機器人管理員,然後在方法中間去呼叫載入群資訊的方法!

Python如何實現24個微信大群萬人同步轉發直播?

下面是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.實現轉發訊息

所需要的資訊都載入完畢之後,我們就可以來開始做轉發了。

大概的思路是:

定義一個接收群訊息的方法

接收到群訊息就判斷這條訊息需不需要轉發,判斷條件是:開啟直播模式+當前訊息是主講群內的+發訊息的人是主講人

如果滿足上訴三個條件,則將訊息轉發到群裡

轉發完畢在主講群內回覆:一轉發完畢,這時主講人就可以講下一句話

我們來看看程式碼吧

Python如何實現24個微信大群萬人同步轉發直播?

我們再來看看**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如何實現24個微信大群萬人同步轉發直播?

但是發現這樣會導致訊息發不出去,微信提示訊息傳送過於頻繁。

Python如何實現24個微信大群萬人同步轉發直播?

訊息怎麼發都發不出去,到這裡豬哥幾乎要放棄了,以為不能多群轉發呢。

3.三個微信轉發24個群

豬哥就去網上看看有沒有免費的轉發軟體,然後看了看wetools(一款基於windows的微信運營工具),發現他們付費版的一個微信最多也就可以轉發9個群。

於是豬哥猜想是不是一個微信最多隻能轉發9個群呢?那我用三個微信做轉發不就可以嗎?

Python如何實現24個微信大群萬人同步轉發直播?

上面的配置檔案意味著我需要啟動三次程式,換三個微信,然後每次更換forward_groups配置。

很多同學還不知道:

PyCharm一個專案如何做到同時多次執行?

Python如何實現24個微信大群萬人同步轉發直播?

Python如何實現24個微信大群萬人同步轉發直播?

Python如何實現24個微信大群萬人同步轉發直播?

用三個微信轉發24個微信群,看起來是個不錯的想法,實踐起來是不是可以成功呢?

Python如何實現24個微信大群萬人同步轉發直播?

本次直播測試差不多播了30分鐘,完全正確的執行無訊息丟失和機器人掉線。

期間傳送過:文字、圖片、檔案、語音。

五、實際直播

24個微信大群同步直播,說實話之前很少有一個人能完成的,我諮詢了很多以前做過群直播的同行,他們基本都是人工複製的方式。

但是,直播前一天順利測試,給了豬哥很大的信心!

實際直播的流程大概是:

提前幾個小時修改公告發布晚上群直播訊息

禁止拉新人入群,防止拉發廣告的進來

提前半小時打卡,直播結束後隨機踢出幾名未打卡佔坑的群成員

直播前5分鐘停止打卡,開始準備直播

晚20:00準時開始直播

大概20:40直播結束,收集大家反饋意見

Python如何實現24個微信大群萬人同步轉發直播?

因為當時直播,忘記截圖24個群的未讀訊息圖,只能找點聊天記錄截圖給大家看。

六、遇到的問題

其實直播的程式碼很簡單,也不多,但是因為群多,使用者體量大所以難免會遇到很多問題,下面豬哥就總結一下遇到的問題:

最大轉發群數問題:最開始豬哥想的是隻用一個機器人轉發到24個群裡,但是訊息發不出去,被提示訊息過於頻繁,最後是看到wetools上他們的最大轉發群數是9個,所以才考慮到使用三個微信,每個轉發8個群。轉發模式問題:之前是一個機器人,主講人直接發給轉發機器人,後來變成三個機器人,如何傳送訊息給三個機器人呢?在朋友的提示下采用了主講群轉發模式。載入不到群問題:有時候啟動專案後會載入不到你想要的群,這時候需要在群裡傳送任意訊息,再重新開啟直播模式,就可以了,切記!切記!在實際直播中有個機器人掉線問題:測試過程中未出現機器人掉線,但在實際直播中出現過一次,重新登入這個機器人就好了。當然上面講述的都是一些技術上的問題,關於直播過程中出現的操作問題,比如:停止打卡後仍然有人打卡影響閱讀、直播速度過快、內容不夠淺顯等問題就不一一列出了,如果你想詳細瞭解這些細節可以加豬哥微信瞭解。

七、總結

近些年,我們guo家慢慢由“中國製造”演變為“中國創造”,這是一件艱鉅而振奮人心的事情。

對於我們做技術的也是如此,工作中很多Ctrl+C(V)操作,不正是我們理解的“製造”嘛!

將技術應用於生活,去解決出現的一些痛點和難題,創造一些有趣的事情,我認為這才是真正的技術創造!

在解決自己遇到的問題的同時也解決了別人的困難,也許這時,機遇正向你走來!

原始碼:https://github。com/pig6/wxrobot/tree/live

原文連結:https://blog。csdn。net/u014044812/article/details/103550611

(*本文為AI科技大本營轉載文章,轉載請聯絡原作者)