文/俞凌峰
隨著新媒體的異軍突起,微信已經越來越成為人們依賴的社交軟件,騰訊公司推出的微信訂閱號、服務號等也被越來越多的企業所采用。對媒體人而言,最常見的就是通過訂閱號每天更新發布新聞,隨著訂閱號的增多,問題也慢慢出現。一是發布渠道單一。現代人關注的不僅僅是一個公眾號,如果僅通過官方的發布,而不主動推送到人們眼前,很多人不會主動去尋找推送的微信;二是轉發數低。轉發數低就不能通過以點帶面的方式形成傳播的擴散,無法有效提高閱讀量與點贊數。
基于這兩點問題,可以通過采用單位員工集中轉發的方式來提高微信圖文消息的轉發數與閱讀量,但如何發送需要轉發的微信消息(以下簡稱指令),并統計轉發的指令成了一個問題。為了解決這個問題,蕭報技術中心打算利用微信提供的公眾平臺開發工具SDK,設計一套系統來完成指令的推送與統計等問題。
運行至今,共計發出微信指令約700余條,審核通過數17000余條,有效地提高了微信的轉發數與閱讀量,也調動了員工的轉發積極性。另外,此系統也引起了行業同行的興趣,我們將之復制并進行了一定的推廣。

系統后臺首頁圖

微信端截圖
通過調研,系統的流程:首先建立一個微信服務號——“蕭報轉發”,讓單位的員工都關注這個服務號(需要有一道審核機制以排除非本單位人員),通過后臺系統推送消息給用戶,用戶接收到消息后轉發指令到朋友圈并截圖,然后通過服務號上傳截圖,審核通過后系統將推送一條審核通過的消息給用戶,并且系統需要對此做一個記錄,以方便統計。
通過分析,判斷轉發系統需要實現以下幾個模塊:
用戶管理:實現用戶的關注申請以及審核。
指令管理:實現指令的編輯、推送、審核。超時的指令不能審核通過。
部門管理:實現部門的建立以及用戶的分組。
統計分析:通過不同的方式,對用戶的完成數進行統計,獎優罰劣。
權限設計:設計好權限的職責范圍,將部分權限發放給二級管理員進行管理。
系統選型上,手機端采用微信提供的weui框架,后臺通過目前比較成熟的Tomcat+Java+Bootstrap+Mysql搭配組合,完成后臺系統的UI以及邏輯和數據庫開發,服務器環境采用安全穩定的阿里云環境,實現云端部署。
通過對數據庫的分析,建立ER模型,把表拆分為in_customer表(用戶表)、in_datastatistic表(數據統計表),in_department表(部門分類表)、task表(任務表)等七張表,其中,特別需要注意的是:由于微信的昵稱現在引入了emoji表情,原先的存儲引擎utf8已經不能滿足新類型的字符串,因此,數據庫以及表都需要將存儲引擎改為utf8mb4引擎,這個新的引擎支持emoji表情的存儲,適用范圍更廣泛。
其次,因為本套系統的指令發出以后,短時間內可能會接到較多的連接請求,為了提高并發量,采用了數據庫連接池的設計方法,有助于提高對于數據庫連接的效率和連接數量。

程序的邏輯代碼層采用java語言開發,采用面向對象的設計方法進行類的拆分與設計,嚴格遵循了MVC的分層設計思想,主要的代碼邏輯處理流程為:view層→servlet層(service)→數據庫訪問層→數據庫連接池→數據庫。通過分層以后,代碼結構耦合性降低,復用性更高。
對于數據的訪問層,將對數據的增刪改查統一封裝在DbDao層,方便對數據庫進行常用操作進行統一管理,同時有助于對數據安全性的檢查,提高系統的安全性。
為了以后很好地進行復制與擴展,將系統的數據庫連接配置文件、微信配置文件,以及系統配置項文件進行了提取整合,當有新的項目需要復制時,直接進行對應的修改即可,可重復性大大提高。
實際使用過程中,對tomcat的生產環境進行優化調整,經實際測試,發現默認的java虛擬機jvm分配的內存不能滿足實際生產環境的需要,系統有時候由于jvm設置的內存大小只有256M,有時候內存溢出會引起死機等問題。經調整到2G以后,生產環境下內存使用率能夠滿足我們的實際需要。

優化后的JVM內存使用率圖
由于是在微信的接口上進行開發,因此,必須遵循微信服務平臺的一些約定。微信和阿里云服務器的通信過程如下圖所示:

微信客戶端與系統通信流程圖
在微信平臺網頁端需要對接入的網站進行一些基本的配置,通過設置微信服務器轉發消息到阿里云平臺,并設置相應的服務器地址以及Token。

公眾平臺開發配置圖
由于Access Token有效期只有7200秒,而每天調用獲取的次數只有2000次,所以,需要將Access Token進行緩存,保證不觸發超過最大調用次數。另外,在微信公眾平臺中,絕大多數高級接口都需要Access Token授權才能進行調用,開發者需要使用中控服務器統一進行緩存與更新,以避免各自刷新而混亂。本系統中,Access Token我們采用緩存的方式進行存儲,避免由于單天轉發數量過大而引起Access Token調用次數達到上限。
為了更好地調動廣大員工的積極性進行微信轉發,報社專門制定了相關制度,要求員工每月至少轉發5條微信,作為考核的基本要求。如果員工超額完成,根據轉發數量排行,每個月進行數量統計,前八名員工將獲得獎勵。制度出臺后,員工的轉發積極性大大提高,每月都有員工滿額完成轉發任務,同時微信主編對平臺的信賴度也越來越高,經常性要求轉發一些本部門重要的微信,以提高閱讀量。
目前系統的使用率較高,每天平均轉發5條以上的微信,從系統投入使用至今共計發出700余條,轉發量達到17000余條。根據閱讀量計算,平均比以前提高將近20%的微信閱讀量,有效地提高了微信的傳播效果。
根據目前的使用效果,我們還將持續地對系統進行優化,聽取更多使用人員的反饋建議,對用戶體驗做進一步的提升。同時,更加關注系統的安全性與穩定性,在此基礎上加入更多的功能,適當時機下我們考慮將之開放到更大的范圍,將更多的人納入到轉發系統中來,通過獎勵或者采取系統積分等辦法鼓勵他們轉發,從而進一步提升微信的轉發量。