孔 云, 廖 寅, 資 蕓,薛秀珍, 張仲華
圖書館微信服務平臺的設計與實現
孔 云, 廖 寅, 資 蕓,薛秀珍, 張仲華
針對圖書館界和情報界對微信的關注和應用的不足,提出構建基于微信的圖書館移動信息服務平臺的總體思路,闡述了平臺的使用需求和可行性、服務平臺的設計方法、核心原理和關鍵實現技術。結合昆明理工大學圖書館構建的微信服務平臺,向業界分享平臺的構建方法和使用經驗。
微信 微信公眾賬號 開放接口 移動信息服務 社交網絡
微信作為新興的即時通訊產品正成為移動互聯網時代的新時尚,越來越多的企業和機構進駐微信公眾平臺探尋新的商業機會,為用戶帶來各種各樣的內容和體驗。當前各行各業都在積極探索適合行業特點的微信服務方式,而圖書館界對微信的關注和研究應用明顯落后于其他行業,本文在借鑒和參考其它行業的成功案例的同時,通過介紹昆明理工大學圖書館(以下簡稱“昆明理工館”)搭建的微信服務平臺的方法,闡述開展微信應用的方法和總結實際應用經驗,為同行開展微信服務提供一種經驗和參考。
1.1 圖書館微信服務需求分析
國內圖書館界從2003年開始推出移動信息服務,目前有相當數量的圖書館開展移動信息服務[1]。毫無疑問,移動信息服務是圖書館的重要發展方向和服務增長點[2]。
作為國內首創和自主研發的新興的移動應用,微信2011年推出之時起就備受關注。微信具有信息表現形式多樣化、用戶高學歷化、用戶群龐大、運營團隊強大、成長潛力巨大和具有社交網絡屬性等諸多特點和優勢[3]。從微信用戶年齡段看,19-40歲的用戶占75%以上,說明微信用戶的主力軍為青年人,高等院校是青年人高度聚集的地方。從學歷看,專科以上學歷的微信用戶占七成以上,說明微信的主要用戶為高學歷人群,高等院校是高學歷人才聚集的場所[4]。據CNNIC網調統計數據顯示,微信的迅猛發展豐富了移動接入的渠道,為各種機構拓寬服務內容提供了可能的方法[5]。高校圖書館作為主要的信息服務中心,迫切需要建立適應時代需求的信息服務平臺,微信是符合時代需求的高新技術產品,其在圖書館信息服務方面有巨大的應用需求。
1.2 圖書館微信服務平臺建設可行性分析
1.2.1 應用構建可行性分析
當前基于微信公眾賬號的應用沒有固定的模式,但是其他行業已經探索出了一些應用案例,圖書館可以借鑒這些成功案例。例如,各種自媒體公眾賬號紛紛涌現,傳統媒體也逐步開設公眾賬號發布內容,向用戶推送精選內容;用戶獲取資訊的方式從博客、微博等逐漸遷移至微信;微信公眾平臺漸漸成為企業營銷渠道、客戶關系管理和業務辦理的新工具,嗅覺靈敏的商業銀行、民用航空、酒店、醫院、電商等行業已開始嘗試使用這個平臺。各行各業都在積極探索適合行業特點的微信服務方式,取得了積極的成果。當前基于微信公眾賬號的服務方式主要有基于查詢的服務方式、基于注冊用戶的服務方式、基于LBS的服務方式和主動推送服務方式等四種。圖書館可以充分借鑒其他行業的經典案例,把各種業務和應用延伸到微信平臺上,以適應用戶移動獲取和移動辦理業務的時代需求。
1.2.2 技術可行性分析
微信公眾平臺是一個開放的平臺,任何機構和個體都可以免費申請注冊并擁有自己的公眾賬號。同時微信公眾平臺開放了其API接口,任何機構都可以開發并構建基于開放接口的第三方服務平臺,實現和機構應用的無縫對接。微信官方為開發者提供了詳實的開發文檔和代碼示例,保證了開放接口的順利搭建。
微信第三方服務平臺是由微信公眾平臺和第三方用戶搭建并開發基于微信消息接口的應用組成的。微信公眾平臺為所有用戶提供了基礎功能,第三方開發者的著力點在于如何實現開放API與應用系統的無縫對接。
2.1 微信公眾平臺功能說明
微信公眾平臺為用戶提供了實時消息管理、用戶管理、消息群發管理、素材管理、品牌設置等常規功能。注冊用戶登錄微信平臺,通過首頁可以直觀地看到每日新增訂閱人數曲線圖,每日接受消息數統計圖和官方的系統消息。打開實時消息管理,可以看到用戶使用賬號的情況和歷史情況,管理員可以對用戶的消息標星和對用戶的問題進行回復。打開用戶管理模塊,可以對用戶進行分組,把違規用戶放入黑名單,統計粉絲數量。打開消息群發模塊,是一個基于網頁的富文本編輯器,可以給用戶發送基于文字、語音、圖片、視頻和圖文的消息,也可以選擇接收消息的用戶群。打開素材管理模塊,可以對消息的圖片、語音、視頻、文字等素材進行管理。打開設置管理,可以對品牌的頭像、功能說明和二維碼等信息進行設置和維護[7]。
2.2 圖書館第三方微信服務平臺的搭建
微信公眾平臺已經實現了消息、用戶和消息群發等常規管理功能,任何第三方平臺都可以免費使用其基礎平臺,因此第三方平臺的主要任務是架設接口的基礎網絡、部署服務器、設計第三方消息接口、設計對接第三方業務系統(群)的方法,設計高效的系統架構方案,優化第三方消息接口和業務系統之間的信息交互,比如設計第三方知識庫,優化索引效率,提高查詢速度等。為了架設第三方服務平臺,系統管理員需要做以下事情:
(1)部署基礎網絡,購買并架設服務器硬件平臺,配置對外開放的網絡IP地址,申請域名(不是必須)。
(2)選擇技術方案并實現第三方消息接口,部署對應的WEB服務器(官方建議采用默認的80端口)。開發并部署消息接口應用程序到WEB服務器。
(3)設計和開發自定義菜單。
(4)設計、開發和對接第三方業務系統(群)。
(5)在微信公眾平臺免費注冊申請一個微信公眾賬號,填寫機構或單位的基本信息,平臺使用功能等。
(6)利用微信公眾賬號登錄微信公眾平臺,打開高級功能菜單,啟用開發模式,配置URL地址,填寫Token信息,最后保存配置信息,完成第三方服務平臺軟硬件的架設部署工作。
從微信目前的發展狀況和其他行業的應用模式來看,結合昆明理工館實際探索的成果,筆者認為圖書館微信服務平臺可以從以下幾個方面進行功能設計[8]:一是開展主動推送服務模式,圖書館員可以向讀者推送讀書活動,各種學術講座,以及有關圖書館的最新信息;二是利用微信開展圖書館業務辦理活動;三是利用微信為讀者提供查詢幫助服務;四是利用微信開展在線咨詢活動,形成以讀者、圖書館員和數據庫服務商等相關人員的在線交流圈;五是結合智能問答系統,形成以微信為入口,以智能問答系統為后端知識庫的智能問答系統;六是充分利用微信的自定義菜單功能和開放API接口,把微信公眾賬號發展為圖書館的移動端門戶(圖書館微信服務平臺的構想如圖1所示)。

圖1 圖書館微信服務平臺功能設計
2.3 第三方消息接口服務原理
設計第三方微信服務平臺的前提是啟用微信公眾平臺的開發模式,同時要具有熟練的計算機網絡編程能力、系統運維經驗和擁有系統部署平臺。微信服務平臺的信息交互流程如圖2所示,微信用戶通過Http傳輸協議把信息發送到微信服務器平臺,平臺將信息傳遞到第三方消息接口,接口接收信息和解析信息,根據消息類型和內容判斷應該對接的第三方應用系統,從第三方應用系統獲取回復信息后,由接口平臺對回復信息進行XML格式的封裝,再把回復信息傳遞到微信平臺,最終由微信平臺將回復信息發送給用戶。第三方消息接口位于微信服務器平臺和第三方系統(群)之間,是兩者進行信息交互的適配器。有了第三方消息接口適配器,微信公眾賬號就可以和多個應用系統實現信息實時交互,開發者就可以開發豐富多彩的應用,同時充分利用微信的諸多優點,實現更多的功能和聚合更多的應用為用戶提供服務,為機構帶來更多的用戶和更廣的商機。

圖2 基于微信開放接口的信息服務原理
3.1 消息接口的實現方案
目前常用的實現方案有基于PHP、J2EE、.NET和其他的網絡編程的技術,常用的WEB服務器有apache,tomcat,nginx,iis等。微信官方提供了基于PHP的接口實現方案,熟練的程序員可以實現基于其它網絡編程技術的消息接口代碼。基于JAVA的消息接口實現如圖3所示,是結合昆明理工大學微信平臺的一種實現,主要需要實現的方法包括用于接收消息參數的doGet()和doPost()方法,用于驗證接口合法性的valid()方法,實現消息接收、處理和響應的responseMsg()和replyMessage()方法,以及保證消息傳輸安全的checkSignature()和SHA1 Encode()等身份驗證和加解密方法。

圖3 基于JAVA的消息接口實現
3.2 消息推送的格式和消息解析的實現方法
3.2.1 消息推送的格式
消息推送是指微信用戶向公眾賬號發送消息。微信服務器將POST該消息到第三方服務器配置的URL上。通常來說微信用戶可以推送文本、圖片、地理位置、鏈接和事件5種消息格式,推送XML結構的消息格式請參看文獻[7]。
3.2.2 消息解析實現方法
當第三方消息接口服務器收到用戶推送的信息后,就需要將消息進行解析。以文本消息和JAVA實現的解析方法為例,其實現關鍵代碼如下:
//解析XML結構的推送消息的JAVA核心代碼
Element root=document.getRoot Element();//獲取XML文檔根節點
String from Username=root.elementText ("FromUserName");//獲取發送方
String toUsername=root.elementText ("ToUserName");//獲取接收方
String msgType=root.elementTextTrim ("MsgType");//獲取消息類型
String content= root.elementTextTrim ("Content");//獲取消息內容
主要是解析開發者微信號,微信用戶發送賬號,信息類型和信息內容等關鍵信息。
3.3 消息回復的格式和消息封裝方法
3.3.1 消息回復的格式
消息回復是指第三方消息接口自動給微信用戶回復消息。對于每一個POST請求,開發者在響應包中返回特定XML結構,對該用戶的消息進行響應,目前支持文本、音樂和圖文三種消息結構,回復XML結構的詳細消息格式和含義請參看文獻[7]。
<XML>//XML結構的回復消息封裝方式示例,字段含義
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>12345678</CreateTime>
<MsgType><![CDATA[news]]></Msg Type>
<ArticleCount>2</ArticleCount>
<Articles>
<item>
<Title><![CDATA[title1]]></Title>
<Description><![CDATA[description1]]></Description>
<PicUrl><![CDATA[picurl]]></PicUrl>
<Url><![CDATA[url]]></Url>
</item>
<item>
...//當回復消息數>1條時,以<item>...</item>形式封裝消息
</item>
</Articles>
<FuncFlag>1</FuncFlag>
</XML>
3.3.2 消息的封裝
當微信第三方服務器對用戶的消息進行智能處理后,就需要將回復內容根據回復類型進行對應格式的封裝,以圖文消息和JAVA實現為例,其封裝的關鍵代碼如下:
String responseStr="<XML>";//封裝XML結構的回復消息的JAVA核心代碼
//字段含義請參看文獻[7]
responseStr+="<ToUserName><![CDATA ["+fromUsername+"]]></ToUserName>";
responseStr+="<FromUserName><!
[CD-ATA["+toUsername+"]]></FromUser-Name>";
responseStr+="<CreateTime>"+System. currentTimeMillis()+"</CreateTime>";
responseStr+="<MsgType><![CDATA [news]]></MsgType>";
responseStr+="<Content><![CDATA[]]></Content>";
responseStr+="<ArticleCount>1</ArticleCount>";
responseStr+="<Articles>";
responseStr+="<item>";
responseStr+="<Title><![CDATA[圖書館自修座位信息實時統計]]></Title>";
responseStr+="<Discription><![CDATA[" +contentStr+"]]></Discription>";
responseStr+="<PicUrl><![CDATA[http://222.197.202.36/images/seat.jpg]]></PicUrl>";
responseStr+="<Url><![CDATA[http:// 222.197.202.36/NoAuthAction.do]]></Url>";
responseStr+="</item>";
responseStr+="</Articles>";
responseStr+="<FuncFlag>1</FuncFlag>";
responseStr+="</XML>";

圖4 昆明理工大學微信平臺使用效果
昆明理工館結合本館實際,開展了基微信公眾賬號的移動信息服務,經過一年多的使用和積累,取得了初步的經驗和效果。如圖4所示,目前能為讀者提供以下服務:一是消息主動推送服務,圖書館員會推送有價值的學術講座信息給讀者,同時推送一些緊急通知,在推送消息時,只推送對讀者有價值的信息和讀者關心的信息,堅決不推送廣告和與讀者無關的信息,盡量避免因消息內容不適而導致讀者流失的問題;同時收集圖書館的常用信息和讀者關心的問題,并形成標準答案供讀者查詢,比如開館時間,借閱規則,機構設置,機構電話,館藏分布情況等;二是利用微信第三方消息接口服務器,結合圖書館門禁系統,實現讀者利用微信實時查詢進館人數,讓領導和讀者可以隨手把握圖書館使用人數;結合圖書館自修座位管理系統,讀者可以實時查詢自修座位使用情況和剩余數量,為讀者是否到圖書館上自習提供參考,解決讀者必須到圖書館才能知道是否有座位的問題。
目前昆明理工館積累了1800多位微信用戶,絕大部分用戶為該校的學生、老師和業界同仁,隨著用戶獲取信息習慣的變化和圖書館宣傳力度的加強,用戶數在不斷地增長。目前讀者使用較多的功能為借閱規則、進館人數、自修座位等查詢。從昆明理工館使用反饋來看,普遍的評價是非常感興趣,有很高的使用價值,紛紛表示要建立自己的微信服務平臺。從讀者反饋的信息來看,接受采訪的讀者表示為他們了解和使用圖書館帶來了便利,拓展了了解和使用圖書館的途徑等;同時也有讀者反饋目前的微信太弱智,功能不夠豐富。
微信作為一種新興的及時通訊技術和產品,目前仍然在不斷地成長和完善之中。基于微信公眾賬號的第三方服務平臺的發展主動權仍然掌控在騰訊公司,筆者認為,微信第三方服務平臺的生命力來自于三個方面:一是微信能否持續成為騰訊公司未來的戰略產品;二是微信團隊能否推出更具創新性的功能和更加豐富靈活的API供第三方開發機構調用;三是微信能否留住和吸引更多的用戶使用。只有微信具有穩定龐大的用戶群,基于微信公眾賬號的應用才能持續健康的發展。祝愿微信發展得越來越好,那時基于微信公眾賬號的第三方應用將會更加豐富多彩。
[1]劉紅麗.國內移動圖書館研究現狀與趨勢[J].國家圖書館學刊,2012,21(2).
[2]茆意宏.我國圖書館移動信息服務的現狀與發展對策[J].大學圖書館學報,2012,30(2).
[3]百度百科.微信[EB/OL].[2013-06-20].http:// baike.baidu.com/view/5117297.htm.
[4]阿麗艷.關于網民使用微信的調查[EB/OL].[2012-11-12].http://www.cnnic.cn/hlwfzyj/fxszl/fxswz/ 201211/t20121112_37173.htm.
[5]譚光柱.移動互聯網入口呈現多元化發展[EB/OL]. [2012-11-29].http://www.cnnic.cn/hlwfzyj/fxszl/ fxswz/201211/t20121129_37306.htm
[6]百度百科.微信公眾平臺[EB/OL].[2013-05-16]. http://baike.baidu.com/view/9212662.htm.
[7]微信公眾平臺[EB/OL].[2013-06-20].http://mp. weixin.qq.com/.
[8]黃浩波,等.微信及其在圖書館信息服務中的應用[J].圖書館學刊,2013(1).
Design and Implementation of Weixin Service Platform for Library
KONG Yun,LIAO Yin,ZI Yun,XUE Xiu-zhen,ZHANG Zhong-hua
Receiving little attention from librarians,Weixin (Wechat)is rarely applied in library.This paper brings forward a general idea for constructing library mobile information service platform based on Weixin;explains the requirement and feasibility,design method,core principle and key implementation techniques of the platform.Then,the authors share their construction method and service experience of the Weixin service platform of KUST library.
Weixin(Wechat);Weixin public account;open API;SNS;mobile information service
格式 孔云,廖寅,資蕓,等.圖書館微信服務平臺的設計與實現[J].圖書館論壇,2014(2):90-95.
孔云(1982-),男,碩士,昆明理工大學圖書館館員;廖寅(1969-),男,碩士,副研究館員,昆明理工大學圖書館副館長;資蕓(1973-),女,碩士,副研究館員,昆明理工大學圖書館技術部主任;薛秀珍(1980-),女,碩士,昆明理工大學圖書館館員;張仲華(1956-),男,教授,昆明理工大學檔案館館長。
2013-08-26