本篇內(nèi)容主要講解“Python怎么實(shí)現(xiàn)微信群萬(wàn)人同步直播”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Python怎么實(shí)現(xiàn)微信群萬(wàn)人同步直播”吧!
樟樹(shù)網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)自2013年創(chuàng)立以來(lái)到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
一、背景介紹
需求很簡(jiǎn)單:能做到24個(gè)微信大群(共萬(wàn)人)同步轉(zhuǎn)發(fā)就可以!
相信很多公司企業(yè)也會(huì)有同樣的需求吧!
二、功能設(shè)計(jì)
如何做多群直播呢?簡(jiǎn)單的就是用機(jī)器人做二級(jí)轉(zhuǎn)發(fā):
新建一個(gè)直播主講群
將三個(gè)機(jī)器人和主講人拉進(jìn)群里
主講人發(fā)到群里的消息機(jī)器人都自動(dòng)轉(zhuǎn)發(fā)到群里
機(jī)器人轉(zhuǎn)發(fā)完畢后在主講群回復(fù)
繼續(xù)發(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ì)代碼,主要做三件事:加載主講群、檢查主講群里是否有主講人、加載直播群。
def load_live(bot): """加載直播需要的群""" # 設(shè)置開(kāi)關(guān) bot.is_live_mode = config.is_live_mode if not bot.is_live_mode: return '\n未開(kāi)啟直播模式,可在 config.py 文件中將 is_live_mode 設(shè)置為T(mén)rue開(kāi)啟!' 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開(kāi)啟群直播失??!\n\n可在主講群中發(fā)任意消息,然后管理員使用命令:開(kāi)啟群直播模式,從新加載直播信息!' elif len(live_group) > 1: bot.live_group = live_group[0] live_status_detail += f'\n主講群:找到多個(gè)群名包含「{config.live_group}」的主講群,默認(rèn)選取第一個(gè)群({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主講人:主講群內(nèi)未找到主講人「{config.live_speaker}」。\n開(kāi)啟群直播失??!' bot.is_live_mode = False return live_status_detail # 3、加載轉(zhuǎn)發(fā)群 forward_groups = search_groups(bot, config.forward_groups) bot.forward_groups = forward_groups live_status_detail += f'\n轉(zhuǎn)發(fā)群:消息將會(huì)轉(zhuǎn)發(fā)至這些群:{str(forward_groups)},共{len(forward_groups)}個(gè)。\n\n如有遺漏可在這些群中發(fā)任意消息,然后管理員使用命令:開(kāi)啟群直播模式,從新加載直播信息!' return live_status_detail
這里我們就加載完了直播需要的4個(gè)要素:機(jī)器人管理員、主講群、主講人、轉(zhuǎn)發(fā)群。
2.實(shí)現(xiàn)轉(zhuǎn)發(fā)消息
所需要的信息都加載完畢之后,我們就可以來(lái)開(kāi)始做轉(zhuǎn)發(fā)了。
大概的思路是:
定義一個(gè)接收群消息的方法
接收到群消息就判斷這條消息需不需要轉(zhuǎn)發(fā),判斷條件是:開(kāi)啟直播模式+當(dāng)前消息是主講群內(nèi)的+發(fā)消息的人是主講人
如果滿足上訴三個(gè)條件,則將消息轉(zhuǎn)發(fā)到群里
轉(zhuǎn)發(fā)完畢在主講群內(nèi)回復(fù):一轉(zhuǎn)發(fā)完畢,這時(shí)主講人就可以講下一句話
我們來(lái)看看代碼吧!
我們?cè)賮?lái)看看wx_command.remote_forward(msg)的具體代碼吧!
def remote_forward(msg): """轉(zhuǎn)發(fā)消息""" 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
這個(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è)試的整體思路就是:
新建一個(gè)主講群,然后將機(jī)器人和主講人拉進(jìn)去
新建 24個(gè)測(cè)試群,把機(jī)器人拉進(jìn)去
啟動(dòng)項(xiàng)目,讓機(jī)器人進(jìn)入直播模式
主講人在群里模擬真實(shí)的直播,注意控制直播速度
直播完畢,關(guān)閉機(jī)器人
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í)際直播的流程大概是:
提前幾個(gè)小時(shí)修改公告發(fā)布晚上群直播消息
禁止拉新人入群,防止拉發(fā)廣告的進(jìn)來(lái)
提前半小時(shí)打卡,直播結(jié)束后隨機(jī)踢出幾名未打卡占坑的群成員
直播前5分鐘停止打卡,開(kāi)始準(zhǔn)備直播
晚20:00準(zhǔn)時(shí)開(kāi)始直播
大概20:40直播結(jié)束,收集大家反饋意見(jiàn)
六、遇到的問(wèn)題
其實(shí)直播的代碼很簡(jiǎn)單,也不多,但是因?yàn)槿憾?,用戶體量大所以難免會(huì)遇到很多問(wèn)題,下面豬哥就總結(jié)一下遇到的問(wèn)題:
最大轉(zhuǎn)發(fā)群數(shù)問(wèn)題:最開(kāi)始豬哥想的是只用一個(gè)機(jī)器人轉(zhuǎn)發(fā)到24個(gè)群里,但是消息發(fā)不出去,被提示消息過(guò)于頻繁,最后是看到wetools上他們的最大轉(zhuǎn)發(fā)群數(shù)是9個(gè),所以才考慮到使用三個(gè)微信,每個(gè)轉(zhuǎn)發(fā)8個(gè)群。
2. 轉(zhuǎn)發(fā)模式問(wèn)題:之前是一個(gè)機(jī)器人,主講人直接發(fā)給轉(zhuǎn)發(fā)機(jī)器人,后來(lái)變成三個(gè)機(jī)器人,如何發(fā)送消息給三個(gè)機(jī)器人呢?在朋友的提示下采用了主講群轉(zhuǎn)發(fā)模式。
3. 加載不到群?jiǎn)栴}:有時(shí)候啟動(dòng)項(xiàng)目后會(huì)加載不到你想要的群,這時(shí)候需要在群里發(fā)送任意消息,再重新開(kāi)啟直播模式,就可以了,切記!切記!
4. 在實(shí)際直播中有個(gè)機(jī)器人掉線問(wèn)題:測(cè)試過(guò)程中未出現(xiàn)機(jī)器人掉線,但在實(shí)際直播中出現(xiàn)過(guò)一次,重新登錄這個(gè)機(jī)器人就好了。
5. 很多微信都不能登錄網(wǎng)頁(yè)版微信:這個(gè)確實(shí)很頭疼,找?guī)讉€(gè)能登錄網(wǎng)頁(yè)版的還真不好找。
當(dāng)然上面講述的都是一些技術(shù)上的問(wèn)題,關(guān)于直播過(guò)程中出現(xiàn)的操作問(wèn)題,比如:停止打卡后仍然有人打卡影響閱讀、直播速度過(guò)快、內(nèi)容不夠淺顯等問(wèn)題就不一一列出了,如果你想詳細(xì)了解這些細(xì)節(jié)可以加豬哥微信了解。
到此,相信大家對(duì)“Python怎么實(shí)現(xiàn)微信群萬(wàn)人同步直播”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
當(dāng)前標(biāo)題:Python怎么實(shí)現(xiàn)微信群萬(wàn)人同步直播
當(dāng)前地址:http://muchs.cn/article36/pgdepg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、自適應(yīng)網(wǎng)站、網(wǎng)站收錄、ChatGPT、外貿(mào)網(wǎng)站建設(shè)、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)