不少人傳言微信網頁版(https://wx.qq.com/)接口已經被封了,因此全部的微信都不能登陸網頁版,這是錯誤的。python
2019年7月微信對網頁版微信進行了動態安全策略調整,致使一大批微信號不能登陸網頁版,但有些微信老號仍是能夠登陸網頁版的,具體哪些微信號能夠登陸哪些又不能登陸,這個目前暫不瞭解!windows
微信機器人項目咱們以前已經寫過四篇了:安全
以上文章可關注微信公衆號:裸睡的豬 ,查看!服務器
今天咱們來學習微信機器人系列的第五篇:多羣轉發作同步圖文直播!微信
豬哥一年前在建Python學習羣的時候就說過,要邀請企業大佬來學習羣作直播。app
其實文章早就寫好了,可是一直沒有找到好的轉發軟件,因此耽擱了幾個月。dom
最近豬哥感受不能再拖了,因此就考慮本身開發一個多羣直播項目,使用原來咱們作的微信機器人項目。工具
需求很簡單:能作到24個微信大羣(共萬人)同步轉發就能夠!學習
相信不少公司企業也會有一樣的需求吧!測試
如何作多羣直播呢?簡單的就是用機器人作二級轉發:
爲了你們便於理解,豬哥畫了一個簡單的設計圖:根據上圖設計,咱們此次功能設計有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 = ''
# 一、加載主講羣
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]
# 二、加載主講人
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
# 三、加載轉發羣
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個要素:機器人管理員、主講羣、主講人、轉發羣。
所須要的信息都加載完畢以後,咱們就能夠來開始作轉發了。
大概的思路是:
咱們來看看代碼吧咱們再來看看wxcommand.remoteforward(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複製代碼
這個方法很簡單,循環遍歷須要轉發的羣,而後一個一個發送,發送完畢後有一個一秒之內的隨機停頓,這是爲了防止消息發送過於頻繁致使消息發不出去。
這裏關於多羣轉發的代碼就完成了,下面咱們就能夠開始測試了。
代碼寫完咱們就能夠開始測試了,測試的總體思路就是:
豬哥在最開始的時候是想的是:用一個機器人,而後轉發到24個羣裏,配置文件大概是這樣:可是發現這樣會致使消息發不出去,微信提示消息發送過於頻繁。
消息怎麼發都發不出去,到這裏豬哥幾乎要放棄了,覺得不能多羣轉發呢。
豬哥就去網上看看有沒有免費的轉發軟件,而後看了看wetools(一款基於windows的微信運營工具),發現他們付費版的一個微信最多也就能夠轉發9個羣。
因而豬哥猜測是否是一個微信最多隻能轉發9個羣呢?那我用三個微信作轉發不就能夠嗎?上面的配置文件意味着我須要啓動三次程序,換三個微信,而後每次更換
forward_groups
配置。
不少同窗還不知道:PyCharm一個項目如何作到同時屢次運行?用三個微信轉發24個微信羣,看起來是個不錯的想法,實踐起來是否是能夠成功呢?
本次直播測試差很少播了30分鐘,徹底正確的運行無消息丟失和機器人掉線。
期間發送過:文字、圖片、文件、語音。
24個微信大羣同步直播,說實話以前不多有一我的能完成的,我諮詢了不少之前作過羣直播的同行,他們基本都是人工複製的方式。
可是,直播前一天順利測試,給了豬哥很大的信心!
實際直播的流程大概是:
由於當時直播,忘記截圖24個羣的未讀消息圖,只能找點聊天記錄截圖給你們看。
其實直播的代碼很簡單,也很少,可是由於羣多,用戶體量大因此不免會遇到不少問題,下面豬哥就總結一下遇到的問題:
固然上面講述的都是一些技術上的問題,關於直播過程當中出現的操做問題,好比:中止打卡後仍然有人打卡影響閱讀、直播速度過快、內容不夠淺顯等問題就不一一列出了,若是你想詳細瞭解這些細節能夠加豬哥微信瞭解。
近些年,咱們guo家慢慢由「中國製造」演變爲「中國創造」,這是一件艱鉅而振奮人心的事情。
對於咱們作技術的也是如此,工做中不少Ctrl+C(V)操做,不正是咱們理解的「製造」嘛!
將技術應用於生活,去解決出現的一些痛點和難題,創造一些有趣的事情,我認爲這纔是真正的技術創造!
在解決本身遇到的問題的同時也解決了別人的困難,也許這時,機遇正向你走來!
獲取源碼,關注微信公衆號:裸睡的豬,回覆:微信機器人