基於itchat的Web端微信機器人

張巨集倫發表於2017-06-27

上次做了個基於itchat的微信群聊訊息同步機器人,基於itchat實現微信群訊息同步機器人,在執行python程式碼後,就可以模擬網頁端微信登陸,並在若干個群聊之間進行訊息轉發。

其原理是使用了itchat提供的介面,使得在登陸網頁版微信後,一旦接收到目標群聊中的訊息,就根據訊息的型別分別處理,並轉發到其他目標群聊中。

不過上一個版本的缺陷很明顯:

  • 需要部署。要麼一直開著一臺電腦跑python程式碼,要麼掛到伺服器上,掉線了還不知道,回頭還得繼續折騰;
  • 非大眾向。雖然itchat門檻不高,但還是需要掌握python等基礎內容,才能知道如何使用;
  • 不易維護。之前的程式碼就是一個py檔案,直接傳到網盤裡分享給別人,所以也談不上什麼進一步開發和完善。

所以,最好的解決方案,就是將之前的工作做成Web Service,這樣在網站上註冊個賬號,簡單配置一下,就可以方便地執行和監控。人人都可以使用,我也可以不斷地新增新的功能。

這便是這次要講的工作,我給專案取了個名字,“輕聽”。為什麼是這個名字呢?因為是隨便一拍腦袋想的。

先看一下

網站已經部署到伺服器上,網頁首頁長這樣,還沒加內容,有時間再整個高大上的首頁出來。

註冊、登陸等基本使用者模組都做好了,好的,登陸一下。

登陸成功之後就會跳到“個人主頁”,目前採集的資料還不是很多,就隨便做點展示。可以看到累計轉發的群聊訊息數量,以及各個群各種型別訊息的數量,其他展示回頭再加。

群聊轉發

目前最核心的是這一塊,點右上角的頭像,選擇“我的輕聽”,進入微信訊息機器人的管理頁面。

在這個頁面中可以看到機器人當前的執行狀態,一開始當然是“已停止”。

不要急著點“執行”,先完成機器人的配置。

  • 在“轉發設定”裡一開始是空的,點右上角的加號,以便新增一組轉發規則;
  • 每一行表示一個群聊,“群聊名稱”是群聊在你微信裡的名稱,“群聊簡稱”是你給它取的一個簡稱;
  • 比如說,我希望“全棧資料工程師一群”和“全棧資料工程師二群”之間訊息互通,那麼就在第一行的兩個框裡分別填上“全棧資料工程師一群”和“全棧一群”,然後在第二行的兩個框裡分別填上“全棧資料工程師二群”和“全棧二群”;
  • 如果還想加,點選“新增群聊”就可以再編輯第三個群第四個群;
  • 如果不需要轉發某個群聊了,點右邊的叉刪掉就行;
  • 配置完畢後,點選“儲存”,就會生成一個轉發規則。

在下面的圖片裡,我建立了兩個轉發規則,全棧資料工程師兩個群互通,老公們兩個群互通,後者是我用來測試的,裡面只有我、我老婆、我的小號。

講完了新建轉發規則,自然就會有編輯轉發規則,滑鼠懸浮在已有的轉發規則上,點選一下就可以進行編輯。

編輯的操作比較類似,編輯完了點“儲存”即可。如果不需要這條轉發規則了,點“刪除”即可。

其他配置

在執行機器人之前,可以順便完成下其他配置,目前提供了三個功能:入群訊息、自動加群、掉線提醒。

“入群訊息”是指有新人加入群聊後,機器人會在該群聊中傳送歡迎訊息,如果不填則不傳送。歡迎訊息可以隨便寫,但是得有一個%s佔位符,在傳送訊息時會替換成新人的名稱。

“自動加群”是指有人加了機器人為好友後,機器人會自動邀請該使用者加入指定群聊,如果不填則不邀請。機器人會自動通過好友申請,所以我在這裡填了“全棧資料工程師二群”,有人加我小號的話就會自動通過,並收到群聊邀請。

“掉線提醒”是指當機器人微信掉線後,給指定的郵箱傳送提醒郵件,如果不填則不傳送。這樣在由於各種原因導致機器人掉線後,指定的郵箱就會收到提醒,於是趕緊再去執行起來。

開始執行

完成以上配置後,點選最開始的“執行”按鈕。

網站就會去請求二維碼,等二維碼出來之後掃一下,在手機上點確認登陸。

然後就登陸成功了,頁面會自動重新整理,並顯示“執行中”。

由於所有操作都是在網頁上進行,自然方便了不少。

資料上傳

對於轉發規則中的群聊,群聊訊息都會上傳至資料庫,群聊中的圖片、視訊、檔案也會上傳到對應的使用者目錄。等資料量多了,就可以在“個人主頁”中多加點功能了,什麼群訊息統計、群話題提取、情感分析,都可以搞搞。

總結一下

平時挺忙,上次弄完第一版之後就有做Web Service的想法,不過一直拖了好幾個月。上週末抽了兩天時間完成了以上功能,目前的版本自己用起來挺順手了。

關於微信機器人,建議不要轉發太多群,不然訊息傳送太頻繁會被檢測出來,然後賬號被禁,無法登陸網頁端微信。所以我主要用於自己的全棧資料工程師群聊訊息同步,畢竟做這個的初衷是解決群聊人數上限500的問題,而不是把各種本來目的就不一樣的群接在一起。

當然了,微信機器人主要是在自己的群聊裡用,如果你在別人的群聊裡巴拉巴拉發那麼多訊息,應該會被踢吧……

雖說網站已經部署到伺服器上,不過還處於測試版本,畢竟如果使用者多了,同時執行很多個機器人就得考慮到開銷問題,後期有時間再想想怎麼解決。

最後來看看效果,目前文字、圖片、視訊、分享、檔案等型別的訊息都可以轉發,而且也比較穩定,可以執行之後放心幹別的事去了~

網站連結是,mylisten.vip,目前還在內測中,所以對使用者總數量做了點限制,歡迎試用~

如果覺得文章不錯,不妨點一下左下方的喜歡~

相關文章