孔 云, 廖 寅, 資 蕓,薛秀珍, 張仲華
圖書館微信服務(wù)平臺的設(shè)計與實現(xiàn)
孔 云, 廖 寅, 資 蕓,薛秀珍, 張仲華
針對圖書館界和情報界對微信的關(guān)注和應(yīng)用的不足,提出構(gòu)建基于微信的圖書館移動信息服務(wù)平臺的總體思路,闡述了平臺的使用需求和可行性、服務(wù)平臺的設(shè)計方法、核心原理和關(guān)鍵實現(xiàn)技術(shù)。結(jié)合昆明理工大學(xué)圖書館構(gòu)建的微信服務(wù)平臺,向業(yè)界分享平臺的構(gòu)建方法和使用經(jīng)驗。
微信 微信公眾賬號 開放接口 移動信息服務(wù) 社交網(wǎng)絡(luò)
微信作為新興的即時通訊產(chǎn)品正成為移動互聯(lián)網(wǎng)時代的新時尚,越來越多的企業(yè)和機構(gòu)進駐微信公眾平臺探尋新的商業(yè)機會,為用戶帶來各種各樣的內(nèi)容和體驗。當(dāng)前各行各業(yè)都在積極探索適合行業(yè)特點的微信服務(wù)方式,而圖書館界對微信的關(guān)注和研究應(yīng)用明顯落后于其他行業(yè),本文在借鑒和參考其它行業(yè)的成功案例的同時,通過介紹昆明理工大學(xué)圖書館(以下簡稱“昆明理工館”)搭建的微信服務(wù)平臺的方法,闡述開展微信應(yīng)用的方法和總結(jié)實際應(yīng)用經(jīng)驗,為同行開展微信服務(wù)提供一種經(jīng)驗和參考。
1.1 圖書館微信服務(wù)需求分析
國內(nèi)圖書館界從2003年開始推出移動信息服務(wù),目前有相當(dāng)數(shù)量的圖書館開展移動信息服務(wù)[1]。毫無疑問,移動信息服務(wù)是圖書館的重要發(fā)展方向和服務(wù)增長點[2]。
作為國內(nèi)首創(chuàng)和自主研發(fā)的新興的移動應(yīng)用,微信2011年推出之時起就備受關(guān)注。微信具有信息表現(xiàn)形式多樣化、用戶高學(xué)歷化、用戶群龐大、運營團隊強大、成長潛力巨大和具有社交網(wǎng)絡(luò)屬性等諸多特點和優(yōu)勢[3]。從微信用戶年齡段看,19-40歲的用戶占75%以上,說明微信用戶的主力軍為青年人,高等院校是青年人高度聚集的地方。從學(xué)歷看,??埔陨蠈W(xué)歷的微信用戶占七成以上,說明微信的主要用戶為高學(xué)歷人群,高等院校是高學(xué)歷人才聚集的場所[4]。據(jù)CNNIC網(wǎng)調(diào)統(tǒng)計數(shù)據(jù)顯示,微信的迅猛發(fā)展豐富了移動接入的渠道,為各種機構(gòu)拓寬服務(wù)內(nèi)容提供了可能的方法[5]。高校圖書館作為主要的信息服務(wù)中心,迫切需要建立適應(yīng)時代需求的信息服務(wù)平臺,微信是符合時代需求的高新技術(shù)產(chǎn)品,其在圖書館信息服務(wù)方面有巨大的應(yīng)用需求。
1.2 圖書館微信服務(wù)平臺建設(shè)可行性分析
1.2.1 應(yīng)用構(gòu)建可行性分析
當(dāng)前基于微信公眾賬號的應(yīng)用沒有固定的模式,但是其他行業(yè)已經(jīng)探索出了一些應(yīng)用案例,圖書館可以借鑒這些成功案例。例如,各種自媒體公眾賬號紛紛涌現(xiàn),傳統(tǒng)媒體也逐步開設(shè)公眾賬號發(fā)布內(nèi)容,向用戶推送精選內(nèi)容;用戶獲取資訊的方式從博客、微博等逐漸遷移至微信;微信公眾平臺漸漸成為企業(yè)營銷渠道、客戶關(guān)系管理和業(yè)務(wù)辦理的新工具,嗅覺靈敏的商業(yè)銀行、民用航空、酒店、醫(yī)院、電商等行業(yè)已開始嘗試使用這個平臺。各行各業(yè)都在積極探索適合行業(yè)特點的微信服務(wù)方式,取得了積極的成果。當(dāng)前基于微信公眾賬號的服務(wù)方式主要有基于查詢的服務(wù)方式、基于注冊用戶的服務(wù)方式、基于LBS的服務(wù)方式和主動推送服務(wù)方式等四種。圖書館可以充分借鑒其他行業(yè)的經(jīng)典案例,把各種業(yè)務(wù)和應(yīng)用延伸到微信平臺上,以適應(yīng)用戶移動獲取和移動辦理業(yè)務(wù)的時代需求。
1.2.2 技術(shù)可行性分析
微信公眾平臺是一個開放的平臺,任何機構(gòu)和個體都可以免費申請注冊并擁有自己的公眾賬號。同時微信公眾平臺開放了其API接口,任何機構(gòu)都可以開發(fā)并構(gòu)建基于開放接口的第三方服務(wù)平臺,實現(xiàn)和機構(gòu)應(yīng)用的無縫對接。微信官方為開發(fā)者提供了詳實的開發(fā)文檔和代碼示例,保證了開放接口的順利搭建。
微信第三方服務(wù)平臺是由微信公眾平臺和第三方用戶搭建并開發(fā)基于微信消息接口的應(yīng)用組成的。微信公眾平臺為所有用戶提供了基礎(chǔ)功能,第三方開發(fā)者的著力點在于如何實現(xiàn)開放API與應(yīng)用系統(tǒng)的無縫對接。
2.1 微信公眾平臺功能說明
微信公眾平臺為用戶提供了實時消息管理、用戶管理、消息群發(fā)管理、素材管理、品牌設(shè)置等常規(guī)功能。注冊用戶登錄微信平臺,通過首頁可以直觀地看到每日新增訂閱人數(shù)曲線圖,每日接受消息數(shù)統(tǒng)計圖和官方的系統(tǒng)消息。打開實時消息管理,可以看到用戶使用賬號的情況和歷史情況,管理員可以對用戶的消息標星和對用戶的問題進行回復(fù)。打開用戶管理模塊,可以對用戶進行分組,把違規(guī)用戶放入黑名單,統(tǒng)計粉絲數(shù)量。打開消息群發(fā)模塊,是一個基于網(wǎng)頁的富文本編輯器,可以給用戶發(fā)送基于文字、語音、圖片、視頻和圖文的消息,也可以選擇接收消息的用戶群。打開素材管理模塊,可以對消息的圖片、語音、視頻、文字等素材進行管理。打開設(shè)置管理,可以對品牌的頭像、功能說明和二維碼等信息進行設(shè)置和維護[7]。
2.2 圖書館第三方微信服務(wù)平臺的搭建
微信公眾平臺已經(jīng)實現(xiàn)了消息、用戶和消息群發(fā)等常規(guī)管理功能,任何第三方平臺都可以免費使用其基礎(chǔ)平臺,因此第三方平臺的主要任務(wù)是架設(shè)接口的基礎(chǔ)網(wǎng)絡(luò)、部署服務(wù)器、設(shè)計第三方消息接口、設(shè)計對接第三方業(yè)務(wù)系統(tǒng)(群)的方法,設(shè)計高效的系統(tǒng)架構(gòu)方案,優(yōu)化第三方消息接口和業(yè)務(wù)系統(tǒng)之間的信息交互,比如設(shè)計第三方知識庫,優(yōu)化索引效率,提高查詢速度等。為了架設(shè)第三方服務(wù)平臺,系統(tǒng)管理員需要做以下事情:
(1)部署基礎(chǔ)網(wǎng)絡(luò),購買并架設(shè)服務(wù)器硬件平臺,配置對外開放的網(wǎng)絡(luò)IP地址,申請域名(不是必須)。
(2)選擇技術(shù)方案并實現(xiàn)第三方消息接口,部署對應(yīng)的WEB服務(wù)器(官方建議采用默認的80端口)。開發(fā)并部署消息接口應(yīng)用程序到WEB服務(wù)器。
(3)設(shè)計和開發(fā)自定義菜單。
(4)設(shè)計、開發(fā)和對接第三方業(yè)務(wù)系統(tǒng)(群)。
(5)在微信公眾平臺免費注冊申請一個微信公眾賬號,填寫機構(gòu)或單位的基本信息,平臺使用功能等。
(6)利用微信公眾賬號登錄微信公眾平臺,打開高級功能菜單,啟用開發(fā)模式,配置URL地址,填寫Token信息,最后保存配置信息,完成第三方服務(wù)平臺軟硬件的架設(shè)部署工作。
從微信目前的發(fā)展?fàn)顩r和其他行業(yè)的應(yīng)用模式來看,結(jié)合昆明理工館實際探索的成果,筆者認為圖書館微信服務(wù)平臺可以從以下幾個方面進行功能設(shè)計[8]:一是開展主動推送服務(wù)模式,圖書館員可以向讀者推送讀書活動,各種學(xué)術(shù)講座,以及有關(guān)圖書館的最新信息;二是利用微信開展圖書館業(yè)務(wù)辦理活動;三是利用微信為讀者提供查詢幫助服務(wù);四是利用微信開展在線咨詢活動,形成以讀者、圖書館員和數(shù)據(jù)庫服務(wù)商等相關(guān)人員的在線交流圈;五是結(jié)合智能問答系統(tǒng),形成以微信為入口,以智能問答系統(tǒng)為后端知識庫的智能問答系統(tǒng);六是充分利用微信的自定義菜單功能和開放API接口,把微信公眾賬號發(fā)展為圖書館的移動端門戶(圖書館微信服務(wù)平臺的構(gòu)想如圖1所示)。
圖1 圖書館微信服務(wù)平臺功能設(shè)計
2.3 第三方消息接口服務(wù)原理
設(shè)計第三方微信服務(wù)平臺的前提是啟用微信公眾平臺的開發(fā)模式,同時要具有熟練的計算機網(wǎng)絡(luò)編程能力、系統(tǒng)運維經(jīng)驗和擁有系統(tǒng)部署平臺。微信服務(wù)平臺的信息交互流程如圖2所示,微信用戶通過Http傳輸協(xié)議把信息發(fā)送到微信服務(wù)器平臺,平臺將信息傳遞到第三方消息接口,接口接收信息和解析信息,根據(jù)消息類型和內(nèi)容判斷應(yīng)該對接的第三方應(yīng)用系統(tǒng),從第三方應(yīng)用系統(tǒng)獲取回復(fù)信息后,由接口平臺對回復(fù)信息進行XML格式的封裝,再把回復(fù)信息傳遞到微信平臺,最終由微信平臺將回復(fù)信息發(fā)送給用戶。第三方消息接口位于微信服務(wù)器平臺和第三方系統(tǒng)(群)之間,是兩者進行信息交互的適配器。有了第三方消息接口適配器,微信公眾賬號就可以和多個應(yīng)用系統(tǒng)實現(xiàn)信息實時交互,開發(fā)者就可以開發(fā)豐富多彩的應(yīng)用,同時充分利用微信的諸多優(yōu)點,實現(xiàn)更多的功能和聚合更多的應(yīng)用為用戶提供服務(wù),為機構(gòu)帶來更多的用戶和更廣的商機。
圖2 基于微信開放接口的信息服務(wù)原理
3.1 消息接口的實現(xiàn)方案
目前常用的實現(xiàn)方案有基于PHP、J2EE、.NET和其他的網(wǎng)絡(luò)編程的技術(shù),常用的WEB服務(wù)器有apache,tomcat,nginx,iis等。微信官方提供了基于PHP的接口實現(xiàn)方案,熟練的程序員可以實現(xiàn)基于其它網(wǎng)絡(luò)編程技術(shù)的消息接口代碼?;贘AVA的消息接口實現(xiàn)如圖3所示,是結(jié)合昆明理工大學(xué)微信平臺的一種實現(xiàn),主要需要實現(xiàn)的方法包括用于接收消息參數(shù)的doGet()和doPost()方法,用于驗證接口合法性的valid()方法,實現(xiàn)消息接收、處理和響應(yīng)的responseMsg()和replyMessage()方法,以及保證消息傳輸安全的checkSignature()和SHA1 Encode()等身份驗證和加解密方法。
圖3 基于JAVA的消息接口實現(xiàn)
3.2 消息推送的格式和消息解析的實現(xiàn)方法
3.2.1 消息推送的格式
消息推送是指微信用戶向公眾賬號發(fā)送消息。微信服務(wù)器將POST該消息到第三方服務(wù)器配置的URL上。通常來說微信用戶可以推送文本、圖片、地理位置、鏈接和事件5種消息格式,推送XML結(jié)構(gòu)的消息格式請參看文獻[7]。
3.2.2 消息解析實現(xiàn)方法
當(dāng)?shù)谌较⒔涌诜?wù)器收到用戶推送的信息后,就需要將消息進行解析。以文本消息和JAVA實現(xiàn)的解析方法為例,其實現(xiàn)關(guān)鍵代碼如下:
//解析XML結(jié)構(gòu)的推送消息的JAVA核心代碼
Element root=document.getRoot Element();//獲取XML文檔根節(jié)點
String from Username=root.elementText ("FromUserName");//獲取發(fā)送方
String toUsername=root.elementText ("ToUserName");//獲取接收方
String msgType=root.elementTextTrim ("MsgType");//獲取消息類型
String content= root.elementTextTrim ("Content");//獲取消息內(nèi)容
主要是解析開發(fā)者微信號,微信用戶發(fā)送賬號,信息類型和信息內(nèi)容等關(guān)鍵信息。
3.3 消息回復(fù)的格式和消息封裝方法
3.3.1 消息回復(fù)的格式
消息回復(fù)是指第三方消息接口自動給微信用戶回復(fù)消息。對于每一個POST請求,開發(fā)者在響應(yīng)包中返回特定XML結(jié)構(gòu),對該用戶的消息進行響應(yīng),目前支持文本、音樂和圖文三種消息結(jié)構(gòu),回復(fù)XML結(jié)構(gòu)的詳細消息格式和含義請參看文獻[7]。
<XML>//XML結(jié)構(gòu)的回復(fù)消息封裝方式示例,字段含義
<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>
...//當(dāng)回復(fù)消息數(shù)>1條時,以<item>...</item>形式封裝消息
</item>
</Articles>
<FuncFlag>1</FuncFlag>
</XML>
3.3.2 消息的封裝
當(dāng)微信第三方服務(wù)器對用戶的消息進行智能處理后,就需要將回復(fù)內(nèi)容根據(jù)回復(fù)類型進行對應(yīng)格式的封裝,以圖文消息和JAVA實現(xiàn)為例,其封裝的關(guān)鍵代碼如下:
String responseStr="<XML>";//封裝XML結(jié)構(gòu)的回復(fù)消息的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[圖書館自修座位信息實時統(tǒng)計]]></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 昆明理工大學(xué)微信平臺使用效果
昆明理工館結(jié)合本館實際,開展了基微信公眾賬號的移動信息服務(wù),經(jīng)過一年多的使用和積累,取得了初步的經(jīng)驗和效果。如圖4所示,目前能為讀者提供以下服務(wù):一是消息主動推送服務(wù),圖書館員會推送有價值的學(xué)術(shù)講座信息給讀者,同時推送一些緊急通知,在推送消息時,只推送對讀者有價值的信息和讀者關(guān)心的信息,堅決不推送廣告和與讀者無關(guān)的信息,盡量避免因消息內(nèi)容不適而導(dǎo)致讀者流失的問題;同時收集圖書館的常用信息和讀者關(guān)心的問題,并形成標準答案供讀者查詢,比如開館時間,借閱規(guī)則,機構(gòu)設(shè)置,機構(gòu)電話,館藏分布情況等;二是利用微信第三方消息接口服務(wù)器,結(jié)合圖書館門禁系統(tǒng),實現(xiàn)讀者利用微信實時查詢進館人數(shù),讓領(lǐng)導(dǎo)和讀者可以隨手把握圖書館使用人數(shù);結(jié)合圖書館自修座位管理系統(tǒng),讀者可以實時查詢自修座位使用情況和剩余數(shù)量,為讀者是否到圖書館上自習(xí)提供參考,解決讀者必須到圖書館才能知道是否有座位的問題。
目前昆明理工館積累了1800多位微信用戶,絕大部分用戶為該校的學(xué)生、老師和業(yè)界同仁,隨著用戶獲取信息習(xí)慣的變化和圖書館宣傳力度的加強,用戶數(shù)在不斷地增長。目前讀者使用較多的功能為借閱規(guī)則、進館人數(shù)、自修座位等查詢。從昆明理工館使用反饋來看,普遍的評價是非常感興趣,有很高的使用價值,紛紛表示要建立自己的微信服務(wù)平臺。從讀者反饋的信息來看,接受采訪的讀者表示為他們了解和使用圖書館帶來了便利,拓展了了解和使用圖書館的途徑等;同時也有讀者反饋目前的微信太弱智,功能不夠豐富。
微信作為一種新興的及時通訊技術(shù)和產(chǎn)品,目前仍然在不斷地成長和完善之中。基于微信公眾賬號的第三方服務(wù)平臺的發(fā)展主動權(quán)仍然掌控在騰訊公司,筆者認為,微信第三方服務(wù)平臺的生命力來自于三個方面:一是微信能否持續(xù)成為騰訊公司未來的戰(zhàn)略產(chǎn)品;二是微信團隊能否推出更具創(chuàng)新性的功能和更加豐富靈活的API供第三方開發(fā)機構(gòu)調(diào)用;三是微信能否留住和吸引更多的用戶使用。只有微信具有穩(wěn)定龐大的用戶群,基于微信公眾賬號的應(yīng)用才能持續(xù)健康的發(fā)展。祝愿微信發(fā)展得越來越好,那時基于微信公眾賬號的第三方應(yīng)用將會更加豐富多彩。
[1]劉紅麗.國內(nèi)移動圖書館研究現(xiàn)狀與趨勢[J].國家圖書館學(xué)刊,2012,21(2).
[2]茆意宏.我國圖書館移動信息服務(wù)的現(xiàn)狀與發(fā)展對策[J].大學(xué)圖書館學(xué)報,2012,30(2).
[3]百度百科.微信[EB/OL].[2013-06-20].http:// baike.baidu.com/view/5117297.htm.
[4]阿麗艷.關(guān)于網(wǎng)民使用微信的調(diào)查[EB/OL].[2012-11-12].http://www.cnnic.cn/hlwfzyj/fxszl/fxswz/ 201211/t20121112_37173.htm.
[5]譚光柱.移動互聯(lián)網(wǎng)入口呈現(xiàn)多元化發(fā)展[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]黃浩波,等.微信及其在圖書館信息服務(wù)中的應(yīng)用[J].圖書館學(xué)刊,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
格式 孔云,廖寅,資蕓,等.圖書館微信服務(wù)平臺的設(shè)計與實現(xiàn)[J].圖書館論壇,2014(2):90-95.
孔云(1982-),男,碩士,昆明理工大學(xué)圖書館館員;廖寅(1969-),男,碩士,副研究館員,昆明理工大學(xué)圖書館副館長;資蕓(1973-),女,碩士,副研究館員,昆明理工大學(xué)圖書館技術(shù)部主任;薛秀珍(1980-),女,碩士,昆明理工大學(xué)圖書館館員;張仲華(1956-),男,教授,昆明理工大學(xué)檔案館館長。
2013-08-26