李書欽, 馬時來
(北方工業(yè)大學 信息中心,北京 100144)
移動辦公,也稱為“3A辦公”,即辦公人員可以在任何時間(Anytime)、任何地點(Anywhere)處理與業(yè)務(wù)相關(guān)的任何事情(Anything),移動化的辦公模式,可以讓辦公人員擺脫時間和空間的束縛。
為滿足無紙化辦公需要,我校搭建協(xié)同辦公系統(tǒng),完成了學校、各部門公文流轉(zhuǎn)、行政審批流程的搭建,于2017年1月正式上線,上線以來,最高在線并發(fā)數(shù)達70人左右,隨著廣大教工辦公習慣的改變,在線人數(shù)將穩(wěn)步上升。目前,我校協(xié)同辦公系統(tǒng)在校內(nèi)網(wǎng)絡(luò)可以通過電腦端訪問,但是,無法滿足移動端的訪問需求,這是亟待解決的問題。
微信企業(yè)號的出現(xiàn),為高校移動辦公平臺構(gòu)建帶來了曙光,微信企業(yè)號是微信平臺為企業(yè)用戶提供的移動應(yīng)用入口。它幫助企業(yè)建立員工、上下游供應(yīng)鏈與企業(yè)應(yīng)用系統(tǒng)間的連接。用戶還可以通過微信企業(yè)號接口,建立企業(yè)號同企業(yè)應(yīng)用間的連接,實現(xiàn)更多豐富且個性化的企業(yè)移動應(yīng)用[2]。
截至2017年3月31日,微信和WeChat的合并月活躍帳戶數(shù)達9.38億個[3]。微信企業(yè)號因其龐大的活躍用戶群、開放的API接口、實名認證等優(yōu)勢,成為移動辦公平臺的首選載體。因此,擬基于微信企業(yè)號,設(shè)計并實現(xiàn)我校移動辦公平臺,用戶只需關(guān)注微信企業(yè)號,進行實名認證,即可在微信中使用協(xié)同辦公系統(tǒng)主要功能,大幅提高我校教師獲取協(xié)同辦公系統(tǒng)信息的速度,提高訪問效率。
我校的協(xié)同辦公系統(tǒng)采用B/S架構(gòu),實現(xiàn)了全校教職工的協(xié)同工作、公文管理、表單管理、文檔管理、會議管理、通知公告等功能,并與學校信息門戶和數(shù)據(jù)中心整合,打破信息孤島,實現(xiàn)了統(tǒng)一登錄、自動同步用戶信息的辦公自動化管理。
我校移動辦公平臺以微信企業(yè)號為載體,實現(xiàn)了移動端的直觀展示,用戶可以通過微信企業(yè)號直接訪問學校協(xié)同辦公系統(tǒng),方便隨時隨地獲取信息,同時結(jié)合微信的消息推送功能,將協(xié)同辦公系統(tǒng)消息有針對性的推送,為用戶提供定制化服務(wù)。經(jīng)過對各業(yè)務(wù)部門的詳細需求調(diào)研,結(jié)合微信企業(yè)號的輕量級、便捷化等功能特點,北方工業(yè)大學移動辦公平臺的功能模塊架構(gòu)如圖1所示。
在移動辦公平臺的學校公文模塊,點擊進入學校公文應(yīng)用,可以看到最近時間的學校公文,以列表形式顯示。點擊某一條具體的公文,進入到公文詳情頁面,可以查看公文信息,包括公文標題、發(fā)布部門、發(fā)布時間、發(fā)布范圍、公文PDF正文等信息。對于每一條公文,會記錄用戶的閱讀量,并且用戶可以對公文列表進行查詢,查詢條件包括標題、發(fā)布人、發(fā)布時間等。
圖1 基于微信企業(yè)號的移動辦公平臺功能模塊架構(gòu)圖
在移動辦公平臺的通知公告模塊,點擊進入通知公告應(yīng)用,可以看到最近時間的通知公告,以列表形式顯示。點擊某一條通知公告,進入到公告詳情頁面,可以查看公告信息,包括公告標題、發(fā)布部門、發(fā)布時間、發(fā)布范圍、公告正文等信息。對于每一條通知公告,會記錄用戶的閱讀量,并且用戶可以查看歷史通知公告。
待辦事項模塊主要是對待辦協(xié)同、待辦公文等事項進行流程處理、審批,點擊進入待辦事項應(yīng)用,可以看到最近時間的待辦協(xié)同、待辦公文,以列表形式顯示。點擊某一條待辦事項,進入到待辦事項詳情頁面,可以進行“已閱”、“同意”和“不同意”操作,同時可以輸入處理意見。點擊“已閱”或“同意”操作,流程進入到下一步,點擊“不同意操作”,可以選擇流程終止或回退到上一步。同時,協(xié)同辦公系統(tǒng)的待辦消息會實時推送到微信企業(yè)號,方便用戶在微信端實時查看處理。
點擊進入會議管理應(yīng)用,可以看到待開會議和已開會議,以列表形式顯示。點擊某一條待開或已開會議,進入到會議詳情頁面,可以查看會議詳細信息,包括會議發(fā)起者、會議地點、會議開始時間、會議結(jié)束時間、參會人員、會議內(nèi)容等信息。同時,可以查看會議的附件,并對是否參會進行回執(zhí),協(xié)同辦公系統(tǒng)的待開會議會實時推送到微信企業(yè)號,方便用戶在微信端實時接收處理。
針對傳統(tǒng)移動應(yīng)用需要用戶下載、安裝、更新、升級等弊端,擬采用與“微信企業(yè)號”對接的方法,將協(xié)同辦公系統(tǒng)主要功能整合到微信企業(yè)號中,實現(xiàn)用戶在移動端隨時獲取自己需要的信息。
移動辦公平臺與微信企業(yè)號的對接主要有兩種方式:普通模式和回調(diào)模式。本系統(tǒng)采用回調(diào)模式,用戶向移動辦公平臺發(fā)起請求并返回消息,回調(diào)模式數(shù)據(jù)采用可擴展標記語言(Extensible Markup Language , XML)格式,數(shù)據(jù)使用可變長度字符編碼(8 bit Unicode Transformation Format, UTF-8),并對傳輸?shù)乃袛?shù)據(jù)用高級加密標準(Advanced Encryption Standard, AES)方式進行加密處理。采用回調(diào)模式,移動辦公平臺與微信企業(yè)號對接分為以下3步:
(1) 開啟應(yīng)用回調(diào)模式。在微信企業(yè)號后臺開啟回調(diào)模式,需要設(shè)置3個參數(shù):統(tǒng)一資源定位符(Uniform Resource Locator , URL)、令牌(Token)和EncodingAESKey。其中,URL是移動辦公平臺的訪問地址,需要設(shè)定為域名。Token用于生成微信企業(yè)號簽名,長度為3~32個字符[4]。EncodingAESKey用于移動辦公平臺與微信企業(yè)號傳送消息體的加密,為AES密鑰的Base64編碼,長度為43字符。
(2) 驗證URL。在第1步設(shè)置完成后,微信企業(yè)號以GET請求方式驗證URL,該請求傳輸4個參數(shù),分別為msg_signature、timestamp、nonce、echostr,移動辦公平臺通過上述參數(shù)對請求進行驗證,若確定該請求來自微信企業(yè)號,則移動辦公平臺對數(shù)據(jù)做解密處理,并將echostr參數(shù)返回至微信企業(yè)號,URL驗證完成。
(3) 使用回調(diào)模式。完成上述步驟可使用回調(diào)模式,回調(diào)地址與驗證的URL相同,移動辦公平臺以POST方式回調(diào)數(shù)據(jù),傳輸格式為XML數(shù)據(jù),包含ToUserName、AgentID、Encrypt 3項數(shù)據(jù)元素[5]。為保證數(shù)據(jù)安全,數(shù)據(jù)經(jīng)過AES加密,移動辦公平臺對接收到的數(shù)據(jù)通過加解密庫驗證,若驗證通過,則提取上述XML中的加密信息,得到原始數(shù)據(jù)[6]。移動辦公平臺獲取原始數(shù)據(jù)后,分析用戶在微信企業(yè)號中具體的點擊事件,并針對不同的業(yè)務(wù)請求做相應(yīng)處理。
移動辦公平臺的主要目的,是實現(xiàn)用戶與協(xié)同辦公系統(tǒng)之間的互動,在微信企業(yè)號中,借助其回調(diào)模式和開放接口可實現(xiàn)完整的消息接收與響應(yīng)。采用微信企業(yè)號的回調(diào)模式,移動辦公平臺可通過回調(diào)URL接收用戶回復(fù)信息,在接收到點擊事件后,微信企業(yè)號可發(fā)送響應(yīng)消息,實現(xiàn)用戶與移動辦公平臺的互動。
移動辦公平臺可以接收普通消息和事件消息,普通消息是用戶向微信企業(yè)號發(fā)送的消息,包括文本、語音、圖片、視頻等類型[7],普通消息會推送到移動辦公平臺對應(yīng)的URL上,以POST方式進行推送,推送的消息格式如下:
〈xml〉
〈ToUserName〉〈![CDATA[toUser]]〉
〈/ToUserName〉
〈FromUserName〉〈![CDATA[fromUser]]〉
〈/FromUserName〉
〈CreateTlme〉 25627721542〈/CreateTime〉
〈MsgType〉〈! [CDATA[text]]〉〈/MsgType〉
〈Contentx! [CDATA[nihao,weixin]]〉〈/Content〉
〈MsgId〉aaa111aaa222bbb〈yMsgId〉
〈AgentID〉1〈/AgentID〉
〈/xml〉
事件消息指用戶在微信企業(yè)號上的點擊行為,比如點擊菜單、關(guān)注、取消關(guān)注等事件[8,9]。事件消息同樣以POST方式推送到移動辦公平臺對應(yīng)的URL上,推送的XML格式數(shù)據(jù)如下:
〈xml〉
〈ToUserName〉![CDATA[toUser]]〉〈/ToUserName〉
〈FromUserName〉〈![CDATA[FromUser]]〉
〈/FromUserName〉
〈Createrime〉25627721542〈/CreateTime〉
〈MsgType〉〈![CDATA[event]]〉〈/MsgType〉
〈Event〉〈[CDATA[CLICK]]〉〈/Event〉
〈EventKey〉〈 [CDATA[EVENTKEY]]〉
〈/EventKey〉
〈AgentID〉1〈/AgentID〉
〈/xml〉
移動辦公平臺接收到用戶消息,需要根據(jù)不同的消息類型,做相應(yīng)的消息響應(yīng)和業(yè)務(wù)邏輯處理,并將處理結(jié)果返回給相應(yīng)用戶,消息響應(yīng)的處理流程如下:
(1) 移動辦公平臺接收到消息請求,獲取msg_signature、timestamp、nonce、echostr等相關(guān)參數(shù),然后進行解密校驗,驗證消息來源是否正確。
(2) 消息來源驗證通過,解密用戶請求數(shù)據(jù),獲取消息明文數(shù)據(jù)。
(3) 根據(jù)消息明文中的事件類型和數(shù)據(jù)調(diào)用對應(yīng)的業(yè)務(wù)接口,進行業(yè)務(wù)邏輯處理,將處理結(jié)果封裝成指定的XML格式數(shù)據(jù)。
(4) 加密上述XML數(shù)據(jù)并再次封裝為XML格式,返回給微信企業(yè)號,用戶獲取消息響應(yīng)。移動辦公平臺消息處理流程如圖2所示。
圖2 移動辦公平臺消息處理流程圖
通過微信企業(yè)號對接協(xié)同辦公系統(tǒng)的表現(xiàn)層狀態(tài)轉(zhuǎn)移(Representational State Transfer , REST)接口,可實現(xiàn)移動辦公平臺的主要功能,實現(xiàn)學校公文、通知公告、待辦事項、會議管理等功能在移動端的展現(xiàn)。REST 近年來已經(jīng)成為最主要的萬維網(wǎng)(World Wide Web, Web)服務(wù)設(shè)計模式,REST用URL來描述資源,如人員、部門、協(xié)同、公文,使用超文本傳輸協(xié)議(HyperText Transfer Protocol , HTTP)的GET、POST、PUT和DELETE來描述資源的獲取、創(chuàng)建、修改和刪除。下面以移動辦公平臺會議管理功能為例,闡述微信企業(yè)號調(diào)用協(xié)同辦公系統(tǒng)REST接口的過程,會議管理功能實現(xiàn)流程圖如圖3所示。
圖3 移動辦公平臺會議管理功能實現(xiàn)流程圖
(1) 獲取Token。微信企業(yè)號調(diào)用協(xié)同辦公系統(tǒng)的REST遠程接口,首先要進行身份驗證獲取Token,所有服務(wù)都必須提供合法的令牌ID方可調(diào)用[10]。通過POST方式獲取Token的HTTP請求如下所示:
POST http://127.0.0.1/seeyon/rest/token HTTP/1.1
Host: 127.0.0.1
Accept: application/json
Content-Type: application/json
{"userName":"rest","password":"123456"}
請求成功返回JSON字符串,失敗則返回-1,如下所示:
成功:{"id": "013a2a1e-a0b0-4f66-b533-da0563f89c6c"}
失?。簕"id": "-1"}
(2) 傳遞Token。在獲取Token后,調(diào)用所有的REST接口必須傳遞Token,如果不傳遞Token或傳遞錯誤的Token,將返回HttpStatus.SC_UNAUTHORIZED 401錯誤及錯誤信息[11]。Token的生命周期為15 min,如果15 min無調(diào)用,Token將失效,失效以后調(diào)用返回401,提示"Invalid token, please authenticate again"。在HTTP請求的header中,傳遞token的方法如下:
GET http://127.0.0.1/seeyon/rest/xxx HTTP/1.1
Host: 127.0.0.1
Accept: application/json
Content-Type: application/json;charset=UTF-8
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1700.76 Safari/537.36
Cookie: JSESSIONID=
5079B8DC8A4BD52E48FBA4DE78C2A43C
token: xxxxxxx
也可在請求參數(shù)中傳遞Token,方法如下:
http://127.0.0.1/seeyon/rest/orgMember/123?token=xxxxxxx
(3) 獲取待開和已開會議列表。微信企業(yè)號可以通過登錄人員ID獲取待開會議列表和已開會議列表,獲取待開會議列表的方法為:http://127.0.0.1/seeyon/rest/meeting/pendings/{personId}?token= xxxxxxx,獲取已開會議列表的方法為:http://127.0.0.1/seeyon/rest/meeting/dones/{personId}?token= xxxxxxx。正常情況下,返回JSON格式的會議列表信息,如果人員ID錯誤或者Token錯誤,返回JSON格式的信息為空,JSON格式的會議列表對象如下所示:
{
"id" : -469251275467767767,
"replyState" : 2,
"canView" : false,
"title" : "本科招生委員會會議",
"createUserId" : 5070546758591204268,
"createUserName" : "test",
"createDate" : 1493356647000,
"beginDate" : 1501219800000,
"endDate" : 1501223400000,
"hasAttsFlag" : true,
"bodyType" : "HTML",
"state" : 30,
"summaryState" : 0,
"proxy" : false,
"proxyId" : null,
"proxyName" : null,
"new" : false
}
(4) 獲取會議詳細信息。在獲取待開會議列表和已開會議列表后,可以根據(jù)會議ID來獲取會議詳細信息,包括會議發(fā)起者、會議地點、會議開始時間、會議結(jié)束時間、參會人員、會議內(nèi)容等信息。根據(jù)會議ID獲取會議信息的方法為:http://127.0.0.1/seeyon/rest/meeting/{id}?token= xxxxxxx。正常情況下,返回JSON格式的會議信息,如果會議ID錯誤或者Token錯誤,返回JSON格式的信息為空。
以北方工業(yè)大學移動辦公平臺為例,用戶初次使用移動辦公平臺,首先需要關(guān)注“北方工業(yè)大學”微信企業(yè)號,進行實名認證,認證通過后,進入微信企業(yè)號主界面,然后,點擊“OA辦公”,進入移動辦公平臺主界面,同時,移動辦公平臺的待辦消息可直接推送到微信企業(yè)號,如圖4所示。
圖4 北方工業(yè)大學移動辦公平臺主界面
點擊“待辦協(xié)同”,可以查看待辦事項,包括待辦列表、待辦詳情,可以進行“已閱”、“同意”和“不同意”操作,同時可以輸入處理意見,具體如圖5所示。
圖5 移動辦公平臺待辦事項主界面
點擊“待開會議”和“已開會議”,可以查看待開會議列表、已開會議列表、待開會議詳情、已開會議詳情等,具體如圖6所示。
圖6 移動辦公平臺會議管理主界面
經(jīng)過以上測試,用戶通過微信企業(yè)號訪問移動辦公平臺,獲取自己關(guān)心的協(xié)同辦公系統(tǒng)信息。在教師、管理人員之間建立良好的溝通渠道,提高辦公自動化系統(tǒng)的時效性與針對性,并且訪問速度和響應(yīng)效率大幅提高,充分說明該設(shè)計方案可靠、有效。北方工業(yè)大學移動辦公平臺一經(jīng)推出,就得到大量教工的關(guān)注,用戶總體滿意度較高。
微信企業(yè)號具有輕量化、易于擴展等優(yōu)點,能夠滿足移動辦公的需求[12-15]。本文通過研究微信企業(yè)號的調(diào)用模式、消息機制、管理接口,并與學校協(xié)同辦公系統(tǒng)實際需求相結(jié)合,實現(xiàn)接口調(diào)用和消息響應(yīng)。該平臺貼近學校協(xié)同辦公系統(tǒng)實際業(yè)務(wù)需求,使全校教工能夠隨時隨地通過移動端訪問學校協(xié)同辦公系統(tǒng),實時獲取協(xié)同辦公系統(tǒng)消息,有力提升了學校辦公效率和學校信息化水平,為學校智慧校園建設(shè)注入了新動力,增加了新內(nèi)涵。下一步,解決消息推送的適宜度和智能化問題,優(yōu)化消息推送策略,完善高校移動辦公平臺,為高校師生提供更加智慧的服務(wù)。