Python如何实现24个微信大群(共万人)同步转发直播?
很多人傳言微信網(wǎng)頁(yè)版(https://wx.qq.com/)接口已經(jīng)被封了,所以所有的微信都不能登錄網(wǎng)頁(yè)版,這是錯(cuò)誤的。
2019年7月微信對(duì)網(wǎng)頁(yè)版微信進(jìn)行了動(dòng)態(tài)安全策略調(diào)整,導(dǎo)致一大批微信號(hào)不能登錄網(wǎng)頁(yè)版,但有些微信老號(hào)還是可以登錄網(wǎng)頁(yè)版的,具體哪些微信號(hào)可以登錄哪些又不能登錄,這個(gè)目前暫不了解!
微信機(jī)器人項(xiàng)目我們之前已經(jīng)寫(xiě)過(guò)四篇了:
今天我們來(lái)學(xué)習(xí)微信機(jī)器人系列的第五篇:多群轉(zhuǎn)發(fā)做同步圖文直播!
一、背景介紹
豬哥一年前在建Python學(xué)習(xí)群的時(shí)候就說(shuō)過(guò),要邀請(qǐng)企業(yè)大佬來(lái)學(xué)習(xí)群做直播。
其實(shí)文章早就寫(xiě)好了,但是一直沒(méi)有找到好的轉(zhuǎn)發(fā)軟件,所以耽擱了幾個(gè)月。
最近豬哥感覺(jué)不能再拖了,所以就考慮自己開(kāi)發(fā)一個(gè)多群直播項(xiàng)目,使用原來(lái)我們做的微信機(jī)器人項(xiàng)目。
需求很簡(jiǎn)單:能做到24個(gè)微信大群(共萬(wàn)人)同步轉(zhuǎn)發(fā)就可以!
相信很多公司企業(yè)也會(huì)有同樣的需求吧!
二、功能設(shè)計(jì)
如何做多群直播呢?簡(jiǎn)單的就是用機(jī)器人做二級(jí)轉(zhuǎn)發(fā):
為了大家便于理解,豬哥畫(huà)了一個(gè)簡(jiǎn)單的設(shè)計(jì)圖:
根據(jù)上圖設(shè)計(jì),我們這次功能設(shè)計(jì)有4個(gè)主要元素:主講群、主講人、轉(zhuǎn)發(fā)群、機(jī)器人管理員。
三、功能實(shí)現(xiàn)
1.加載直播4個(gè)元素
根據(jù)上面的設(shè)計(jì)圖,我們得知首先需要一個(gè)直播主講群,然后直播群里個(gè)主講人,然后還需要加載需要轉(zhuǎn)發(fā)的轉(zhuǎn)發(fā)群。
這些信息我們都可以在寫(xiě)在一個(gè)配置文件里面。
然后我們?cè)跈C(jī)器人啟動(dòng)的時(shí)候,調(diào)用加載配置文件的方法,而加載配置文件的方法又去調(diào)用加載直播信息的方法!
首先是加載機(jī)器人管理員,然后在方法中間去調(diào)用加載群信息的方法!
下面是load_live方法的詳細(xì)代碼,主要做三件事:加載主講群、檢查主講群里是否有主講人、加載直播群。
這里我們就加載完了直播需要的4個(gè)要素:機(jī)器人管理員、主講群、主講人、轉(zhuǎn)發(fā)群。
2.實(shí)現(xiàn)轉(zhuǎn)發(fā)消息
所需要的信息都加載完畢之后,我們就可以來(lái)開(kāi)始做轉(zhuǎn)發(fā)了。
大概的思路是:
我們來(lái)看看代碼吧
我們?cè)賮?lái)看看**wx_command.remote_forward(msg)**的具體代碼吧!
這個(gè)方法很簡(jiǎn)單,循環(huán)遍歷需要轉(zhuǎn)發(fā)的群,然后一個(gè)一個(gè)發(fā)送,發(fā)送完畢后有一個(gè)一秒以內(nèi)的隨機(jī)停頓,這是為了防止消息發(fā)送過(guò)于頻繁導(dǎo)致消息發(fā)不出去。
這里關(guān)于多群轉(zhuǎn)發(fā)的代碼就完成了,下面我們就可以開(kāi)始測(cè)試了。
四、測(cè)試
1.測(cè)試流程
代碼寫(xiě)完我們就可以開(kāi)始測(cè)試了,測(cè)試的整體思路就是:
2.一個(gè)機(jī)器人轉(zhuǎn)發(fā)24個(gè)群
豬哥在最開(kāi)始的時(shí)候是想的是:用一個(gè)機(jī)器人,然后轉(zhuǎn)發(fā)到24個(gè)群里,配置文件大概是這樣:
但是發(fā)現(xiàn)這樣會(huì)導(dǎo)致消息發(fā)不出去,微信提示消息發(fā)送過(guò)于頻繁。
消息怎么發(fā)都發(fā)不出去,到這里豬哥幾乎要放棄了,以為不能多群轉(zhuǎn)發(fā)呢。
3.三個(gè)微信轉(zhuǎn)發(fā)24個(gè)群
豬哥就去網(wǎng)上看看有沒(méi)有免費(fèi)的轉(zhuǎn)發(fā)軟件,然后看了看wetools(一款基于windows的微信運(yùn)營(yíng)工具),發(fā)現(xiàn)他們付費(fèi)版的一個(gè)微信最多也就可以轉(zhuǎn)發(fā)9個(gè)群。
于是豬哥猜想是不是一個(gè)微信最多只能轉(zhuǎn)發(fā)9個(gè)群呢?那我用三個(gè)微信做轉(zhuǎn)發(fā)不就可以嗎?
上面的配置文件意味著我需要啟動(dòng)三次程序,換三個(gè)微信,然后每次更換forward_groups配置。
很多同學(xué)還不知道:PyCharm一個(gè)項(xiàng)目如何做到同時(shí)多次運(yùn)行?
用三個(gè)微信轉(zhuǎn)發(fā)24個(gè)微信群,看起來(lái)是個(gè)不錯(cuò)的想法,實(shí)踐起來(lái)是不是可以成功呢?
本次直播測(cè)試差不多播了30分鐘,完全正確的運(yùn)行無(wú)消息丟失和機(jī)器人掉線。
期間發(fā)送過(guò):文字、圖片、文件、語(yǔ)音。
五、實(shí)際直播
24個(gè)微信大群同步直播,說(shuō)實(shí)話之前很少有一個(gè)人能完成的,我咨詢了很多以前做過(guò)群直播的同行,他們基本都是人工復(fù)制的方式。
但是,直播前一天順利測(cè)試,給了豬哥很大的信心!
實(shí)際直播的流程大概是:
因?yàn)楫?dāng)時(shí)直播,忘記截圖24個(gè)群的未讀消息圖,只能找點(diǎn)聊天記錄截圖給大家看。
六、遇到的問(wèn)題
其實(shí)直播的代碼很簡(jiǎn)單,也不多,但是因?yàn)槿憾?#xff0c;用戶體量大所以難免會(huì)遇到很多問(wèn)題,下面豬哥就總結(jié)一下遇到的問(wèn)題:
當(dāng)然上面講述的都是一些技術(shù)上的問(wèn)題,關(guān)于直播過(guò)程中出現(xiàn)的操作問(wèn)題,比如:停止打卡后仍然有人打卡影響閱讀、直播速度過(guò)快、內(nèi)容不夠淺顯等問(wèn)題就不一一列出了,如果你想詳細(xì)了解這些細(xì)節(jié)可以加豬哥微信了解。
七、總結(jié)
近些年,我們guo家慢慢由“中國(guó)制造”演變?yōu)椤爸袊?guó)創(chuàng)造”,這是一件艱巨而振奮人心的事情。
對(duì)于我們做技術(shù)的也是如此,工作中很多Ctrl+C(V)操作,不正是我們理解的“制造”嘛!
將技術(shù)應(yīng)用于生活,去解決出現(xiàn)的一些痛點(diǎn)和難題,創(chuàng)造一些有趣的事情,我認(rèn)為這才是真正的技術(shù)創(chuàng)造!
在解決自己遇到的問(wèn)題的同時(shí)也解決了別人的困難,也許這時(shí),機(jī)遇正向你走來(lái)!
源碼:https://github.com/pig6/wxrobot/tree/live
總結(jié)
以上是生活随笔為你收集整理的Python如何实现24个微信大群(共万人)同步转发直播?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: JSON的使用场景及注意事项介绍
- 下一篇: 正则表达式引擎执行原理——从未如此清晰!