圖書館微信公眾平臺(tái)服務(wù)號(hào)的設(shè)計(jì)與開(kāi)發(fā)
陳剛,劉坤,劉毅,徐覺(jué)瑛,張聯(lián)民
(蘇州健雄職業(yè)技術(shù)學(xué)院,太倉(cāng) 215411)
摘要:文章從探討微信公眾平臺(tái)開(kāi)發(fā)的兩種模式和圖書館的契合度出發(fā),簡(jiǎn)述開(kāi)發(fā)模式的基本原理。以微信菜單的設(shè)置和創(chuàng)建為引子,以豐富圖書館的服務(wù)形式、增加圖書館的服務(wù)內(nèi)容、拉近圖書館和讀者之間的距離為目標(biāo),詳述微信消息的接收和發(fā)送、圖文消息的后臺(tái)管理與動(dòng)態(tài)更新以及圖書查詢、續(xù)借和薦購(gòu)等功能模塊的實(shí)現(xiàn)方法。
關(guān)鍵詞:圖書館服務(wù);微信;微信公眾平臺(tái);服務(wù)號(hào);開(kāi)發(fā)模式
中圖分類號(hào):G250.72
基金項(xiàng)目:蘇州健雄職業(yè)技術(shù)學(xué)院青年科研
作者簡(jiǎn)介:陳剛,男,館員。
收稿日期:2014-10-31
Design and exploitation of the wechat public platform service in libraries
CHEN Gang, LIU Kun, LIU Yi, XU Jue-ying , ZHANG Lian-min
(Chien-shiung Institute of Technology, Taicang215411, China)
Abstract:With the rapid development of wechat, the quick response of libraries and the wide utilization of wechat public platforms, this essay expounds the basic principle of the development of the wechat public platform, probes into two models of the exploitation of the platform. The authors hold that libraries should take setting up and creating wechat menu as the starting point, increase the service forms, enrich the service contents, shorten the distance between the libraries and broad users so as to tally with their positions. Both of sending and receiving of wechat news, background management, upgrading of graphics, and the realization of functioning modules such as book-hinting, book-renewing and book recommending are also discussed in great detail in the article.
Key words: library service; wechat; wechat public platform; exploitation mode
1引言
微信(wechat)是騰訊公司于2011年1月21日推出的一款提供即時(shí)通訊服務(wù)的免費(fèi)應(yīng)用程序,微信支持跨通信運(yùn)營(yíng)商、跨操作系統(tǒng)平臺(tái)通過(guò)網(wǎng)絡(luò)快速發(fā)送免費(fèi)(需消耗少量網(wǎng)絡(luò)流量)語(yǔ)音短信、視頻、圖片和文字。截至2014年6月30日,微信和WeChat的合并月活躍賬戶數(shù)達(dá)到4.38億,比上一季度增長(zhǎng)11%,比去年同期增長(zhǎng)57%[1]。
微信公眾平臺(tái)于2012年08月23日正式上線,是騰訊公司在微信的基礎(chǔ)上新增的功能模塊,實(shí)現(xiàn)微信與第三方平臺(tái)的對(duì)接,提供內(nèi)容更加豐富、功能更加全面的平臺(tái)服務(wù)。從類型上它可以分為服務(wù)號(hào)和訂閱號(hào)兩種類型[2]。服務(wù)號(hào)和訂閱號(hào)的主要區(qū)別在群發(fā)消息的限制和消息提醒上,以目前微信5.4版本為例,服務(wù)號(hào)每月可以群發(fā)4條消息,訂閱號(hào)每天可以群發(fā)1條消息。圖書館作為服務(wù)型部門,顯然對(duì)于服務(wù)功能的需求優(yōu)于資訊功能,并且發(fā)送消息直接顯示在微信首頁(yè),便于查看。一般情況下,圖書館可以優(yōu)先選擇服務(wù)號(hào)作為圖書館的首個(gè)公眾號(hào),如果有必要,可以申請(qǐng)第二個(gè)公眾號(hào)使用訂閱號(hào)做為輔助。
2國(guó)內(nèi)研究現(xiàn)狀
國(guó)內(nèi)圖書館界對(duì)微信公眾平臺(tái)的研究最早始于2013年,其中較有影響的代表為孔云等,分析了圖書館移動(dòng)信息服務(wù)開(kāi)展現(xiàn)狀和微信及微信公眾平臺(tái)的特點(diǎn),構(gòu)建基于微信公眾賬號(hào)的圖書館信息服務(wù)[3];武龍龍、楊小菊通過(guò)分析目前國(guó)內(nèi)高校移動(dòng)圖書館服務(wù)的不足,結(jié)合公眾平臺(tái)的特點(diǎn)及優(yōu)勢(shì),對(duì)高校移動(dòng)圖書館利用公眾平臺(tái)開(kāi)展服務(wù)的可行性進(jìn)行了分析[4];張蓓等詳細(xì)講述了開(kāi)發(fā)模式下圖書館微信公眾平臺(tái)的設(shè)計(jì)思路、具體實(shí)現(xiàn)以及關(guān)注點(diǎn)等[5]。實(shí)踐方面,不少圖書館也已經(jīng)開(kāi)通了自己的公眾賬號(hào),高校館如清華大學(xué)圖書館、北京大學(xué)圖書館等,公共館如上海圖書館、南京圖書館等都開(kāi)通了自己的公眾帳號(hào)。截至2014年9月,通過(guò)搜狗搜索的微信公眾號(hào)搜索功能,以“圖書館”為關(guān)鍵詞,查詢結(jié)果有約1234條,去除一些個(gè)人和企業(yè)開(kāi)通的關(guān)于圖書館的公眾帳號(hào),粗略估計(jì)全國(guó)開(kāi)通微信公眾號(hào)的公共館、高校館以及少部分中學(xué)館和兒童館約有上千家,可見(jiàn)微信公眾號(hào)已經(jīng)成為了圖書館界必備的移動(dòng)服務(wù)窗口之一。
雖然國(guó)內(nèi)圖書館界對(duì)微信公眾平臺(tái)的研究正進(jìn)行得如火如荼,但無(wú)論是從理論研究還是實(shí)踐應(yīng)用來(lái)看,都存在一些問(wèn)題和不足。理論研究上主要是對(duì)微信公眾平臺(tái)作為圖書館新型移動(dòng)信息服務(wù)模式進(jìn)行了探討性的研究,而忽略了對(duì)平臺(tái)開(kāi)發(fā)的具體實(shí)踐研究以及開(kāi)發(fā)完成后的管理和維護(hù),未免有點(diǎn)虎頭蛇尾;從實(shí)踐方面來(lái)看,雖然全國(guó)開(kāi)通微信公眾平臺(tái)的圖書館有上千家,但是從使用效率上來(lái)看并不高,有近 1/3 的圖書館開(kāi)通賬號(hào)后并未投入使用,或因沒(méi)有專人負(fù)責(zé)和管理而使得服務(wù)長(zhǎng)期處于停頓狀態(tài),形同虛設(shè)[6],這種情況亦跟平臺(tái)開(kāi)發(fā)時(shí)缺少周全的思慮有關(guān)。本文對(duì)圖書館微信公眾平臺(tái)的開(kāi)發(fā)和研究,既考慮讀者的使用感受,力爭(zhēng)做到功能完善、界面友好、容易操作,又考慮平臺(tái)投入后如何較容易地實(shí)現(xiàn)管理和維護(hù)等問(wèn)題。
3服務(wù)號(hào)的設(shè)計(jì)與開(kāi)發(fā)
微信公眾平臺(tái)有編輯模式和開(kāi)發(fā)模式兩種,兩種模式不能共存。編輯模式簡(jiǎn)單實(shí)用,具有可視化編輯界面,無(wú)需學(xué)習(xí)編程知識(shí)就可以設(shè)置消息自動(dòng)回復(fù),自定義菜單的功能,并且消息響應(yīng)速度快,不需要搭建開(kāi)發(fā)者服務(wù)器。開(kāi)發(fā)模式除了具有編輯模式所有的功能外,還可以通過(guò)對(duì)接數(shù)據(jù)庫(kù)、調(diào)用網(wǎng)絡(luò)API實(shí)現(xiàn)更深、更廣的功能開(kāi)發(fā)。對(duì)具有龐大數(shù)據(jù)庫(kù)的圖書館來(lái)說(shuō),完美對(duì)接數(shù)據(jù)庫(kù),可以增加圖書館的服務(wù)范圍。通過(guò)調(diào)用網(wǎng)絡(luò)API,實(shí)現(xiàn)天氣、股票、快遞、笑話、音樂(lè)等信息的查詢,既可以豐富圖書館微信平臺(tái)的服務(wù)內(nèi)容,也可以增加用戶的粘性。有條件的圖書館都應(yīng)該選擇開(kāi)發(fā)模式,暫時(shí)沒(méi)條件的圖書館可以通過(guò)讓一些學(xué)歷比較高、學(xué)習(xí)能力強(qiáng)或者對(duì)這方面有興趣的館員參考相關(guān)書籍進(jìn)行自主開(kāi)發(fā)或通過(guò)外包給專業(yè)公司來(lái)實(shí)現(xiàn)。
3.1 開(kāi)發(fā)模式的基本原理
微信公眾平臺(tái)開(kāi)發(fā)模式的基本原理是微信服務(wù)器相當(dāng)于一個(gè)消息轉(zhuǎn)發(fā)器,微信用戶通過(guò)手機(jī)、平板等終端發(fā)送http請(qǐng)求給微信服務(wù)器,微信服務(wù)器將用戶請(qǐng)求的消息組裝成XML格式通過(guò)POST方式提交給開(kāi)發(fā)者服務(wù)器,開(kāi)發(fā)者服務(wù)器獲取消息根據(jù)自己的業(yè)務(wù)邏輯處理數(shù)據(jù)并響應(yīng)給微信服務(wù)器,最后微信服務(wù)器再將數(shù)據(jù)響應(yīng)給用戶,如圖1所示。
圖1 開(kāi)發(fā)模式的基本原理
基于以上原理,只要獲取相關(guān)的接口權(quán)限,圖書館就可以在自己的服務(wù)器上開(kāi)發(fā)合適的業(yè)務(wù)處理流程。
3.2 開(kāi)發(fā)模式下的功能實(shí)現(xiàn)
要啟用微信公眾平臺(tái)的開(kāi)發(fā)模式,首先要登陸微信公眾平臺(tái)進(jìn)行開(kāi)發(fā)者服務(wù)器網(wǎng)址接入,網(wǎng)址接入較簡(jiǎn)單,在此不再贅述。接入成功后就可以在開(kāi)發(fā)者服務(wù)器(即圖書館服務(wù)器)上進(jìn)行功能的具體實(shí)現(xiàn)。需要注意的是,微信公眾號(hào)接口目前只支持80接口。
圖2 菜單的設(shè)置
3.2.1 菜單的設(shè)置和創(chuàng)建
首先需要設(shè)置菜單,目前自定義菜單最多包括3個(gè)一級(jí)菜單,每個(gè)一級(jí)菜單最多包含5個(gè)二級(jí)菜單。一級(jí)菜單最多4個(gè)漢字,二級(jí)菜單最多7個(gè)漢字,多出來(lái)的部分將會(huì)以“...”代替。
菜單的設(shè)置既要符合微信的規(guī)則,也要符合以人為本的原則。要做到命名通俗、美觀整齊、層次合理、內(nèi)容豐富,使讀者既能很容易理解每個(gè)菜單的用途,又能有整齊舒適的感覺(jué),同時(shí)還要留有適當(dāng)?shù)臄U(kuò)展余地。以我院圖書館微信服務(wù)號(hào)為例,目前開(kāi)發(fā)了基礎(chǔ)服務(wù)、信息推送和服務(wù)指南3大模塊12個(gè)功能(即3個(gè)一級(jí)菜單、12個(gè)二級(jí)菜單),如圖2所示,一級(jí)菜單和二級(jí)菜單全部采用4個(gè)漢字,根據(jù)功能合理規(guī)劃二級(jí)菜單,例如一級(jí)菜單“我的圖書”下有4個(gè)二級(jí)菜單,全部跟館藏圖書相關(guān),放在“我的圖書”菜單下就比較合理。
設(shè)計(jì)好自定義菜單后,就可以進(jìn)行自定義菜單的創(chuàng)建。需要使用HTTP請(qǐng)求方式POST(使用HTTPS協(xié)議)到接口地址:
https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN。
access_token是微信的全局票據(jù),在高級(jí)接口中需要頻繁地調(diào)用,有效期是7200秒,官方限制每日調(diào)用限額2000次。因此,最好的選擇是把獲取的access_token緩存起來(lái),這樣只要緩存沒(méi)過(guò)期,就可以直接調(diào)用緩存獲取。POST的菜單數(shù)據(jù)要為JSON格式,具體詳見(jiàn)官方文檔。請(qǐng)注意,創(chuàng)建自定義菜單后,由于微信客戶端緩存,需要24小時(shí)微信客戶端才會(huì)展現(xiàn)出來(lái)。建議測(cè)試時(shí)可以嘗試取消關(guān)注公眾賬號(hào)后再次關(guān)注,則可以看到創(chuàng)建后的效果[7]。
3.2.2 消息的接收和回復(fù)
圖書館的服務(wù)在微信中的呈現(xiàn)方式是通過(guò)消息的交互實(shí)現(xiàn)。目前微信支持文本消息、圖片消息、語(yǔ)音消息、視頻消息、地理位置消息、鏈接消息6種。當(dāng)用戶向公眾賬號(hào)發(fā)送消息時(shí),微信服務(wù)器會(huì)將這6種消息格式包裝成不同的XML數(shù)據(jù)包POST到開(kāi)發(fā)者服務(wù)器上。以下是圖文消息$newsTpl模板:
$newsTpl=”
”;
目前常用的實(shí)現(xiàn)方案有基于PHP、J2EE、.NET和其他的網(wǎng)絡(luò)編程的技術(shù),常用的WEB服務(wù)器有apache,tomcat,nginx,iis等。微信官方提供了基于PHP的接口實(shí)現(xiàn)方案,熟練的程序員可以實(shí)現(xiàn)基于其它網(wǎng)絡(luò)編程技術(shù)的消息接口代碼[8]。健雄職業(yè)技術(shù)學(xué)院圖書館采用官方建議的基于PHP來(lái)實(shí)現(xiàn)接口,獲取消息的關(guān)鍵代碼是:
步驟1:接收微信服務(wù)器POST過(guò)來(lái)的數(shù)據(jù)
$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
步驟2:將$postStr載入到對(duì)象里
$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
步驟3:獲取消息
$from Username=$postObj->From User Name;//獲取發(fā)送者賬號(hào)信息
$toUsername = $postObj->ToUserName;//獲取開(kāi)發(fā)者賬號(hào)信息
$type = $postObj->MsgType;//獲取消息類型
$customevent = $postObj->Event;//獲取事件類型
$keyword = $postObj->Content;//獲取文本消息內(nèi)容
注意對(duì)象屬性區(qū)分大小寫,否則獲取不到消息。
獲取到消息后根據(jù)不同的功能模塊處理后,將結(jié)果重新封裝成XML格式(消息的發(fā)送方和接收方需要調(diào)換一下),通過(guò)調(diào)用封裝好的消息發(fā)送方法sendMsg返回給微信服務(wù)器,由微信服務(wù)器解析XML數(shù)據(jù)返回給用戶??紤]到用戶的網(wǎng)絡(luò)和流量耗費(fèi),回復(fù)的消息格式通常為文本或圖文消息,采用圖文消息格式較美觀、生動(dòng)。
3.2.3 圖書查詢和續(xù)借
由于匯文館藏書目檢索系統(tǒng)沒(méi)有提供現(xiàn)成的接口,如果采用直接鏈接PC客戶端的網(wǎng)址,在手機(jī)上瀏覽字體就會(huì)很小,給用戶的體驗(yàn)感受很不好。現(xiàn)在有一些工具可以幫助很方便的建立WAP站,比如百度siteapp。它可以將匯文OPAC一鍵轉(zhuǎn)換為WAP網(wǎng)站,并且可以實(shí)現(xiàn)同步。
通過(guò)百度siteapp建WAP站只需3步:第一步,添加匯文OPAC的主域名;第二步,選擇一個(gè)模板修改定制主題樣式、導(dǎo)航以及布局,導(dǎo)航只要添加圖書查詢和續(xù)借模塊即可;第三步,進(jìn)行權(quán)限驗(yàn)證,驗(yàn)證通過(guò)后就生成WAP網(wǎng)站了。接下來(lái)只要等待審核,在提交審核的同時(shí)系統(tǒng)自動(dòng)分配了WAP網(wǎng)站的訪問(wèn)地址,在通過(guò)審核后該域名即可訪問(wèn)。
建好WAP網(wǎng)站后,分別將圖書查詢和續(xù)借的地址填寫在微信菜單相應(yīng)的url里,用戶就可以通過(guò)點(diǎn)擊菜單訪問(wèn)WAP網(wǎng)站,實(shí)現(xiàn)圖書的查詢和續(xù)借功能了。
3.2.4 圖文消息的動(dòng)態(tài)更新
圖書查詢和續(xù)借功能一旦發(fā)布成功基本就不用維護(hù)了,但最新動(dòng)態(tài)、培訓(xùn)講座、閱讀活動(dòng)等這些需要經(jīng)常更新的欄目在發(fā)布后仍然要管理者及時(shí)維護(hù)更新消息。如果管理者不具備一些編程知識(shí),則管理維護(hù)這些欄目就存在較大困難。因此,開(kāi)發(fā)者同時(shí)需要開(kāi)發(fā)一個(gè)后臺(tái)管理系統(tǒng)。管理者可以在后臺(tái)很方便地對(duì)這些欄目?jī)?nèi)容進(jìn)行增刪改查,并且在用戶點(diǎn)擊相應(yīng)的菜單后,服務(wù)器將返回給用戶最新的圖文消息。
實(shí)現(xiàn)圖文消息動(dòng)態(tài)更新的難點(diǎn)在于圖片的保存和讀取。管理者通過(guò)后臺(tái)增加新的圖文消息時(shí),如果有新的圖片被上傳,被上傳的圖片url和消息內(nèi)容將保存在數(shù)據(jù)庫(kù)中的content字段中。前臺(tái)在讀取遍歷數(shù)據(jù)庫(kù)時(shí),需要通過(guò)正則表達(dá)式從content字段中將圖片url分離出來(lái)。實(shí)現(xiàn)圖文消息動(dòng)態(tài)更新的關(guān)鍵代碼如下:
……
$result=$mysqli->query("select id,title,description,content from wx_news where pid=7 order by id desc limit 1");//按id倒序查詢pid為7的最新1條消息的結(jié)果集
$rows=$result->fetch_assoc();//從結(jié)果集中獲取數(shù)據(jù)賦給數(shù)組$rows
$picUrl=str_replace(array(""", "'"),array(""", "'"), $picArr[0]);
$title=$rows['title'];
$des=$rows['description'];
$url="http://localhost/weixin/index.php/news/detail/id/{$rows['id']}";
}
$resultStr = sprintf($newsTpl,$fromUsername,$toUsername,$time,$title,$des,$picUrl,$url);
echo $resultStr;
……
以上代碼可以實(shí)現(xiàn)最新的1條消息的動(dòng)態(tài)更新,如需要實(shí)現(xiàn)最新的幾條消息的動(dòng)態(tài)更新,只需要在查詢數(shù)據(jù)庫(kù)時(shí)通過(guò)limit限制記錄數(shù)遍歷結(jié)果集即可,在此不再贅述。
3.2.5 圖書薦購(gòu)
電子商務(wù)的快速發(fā)展也給圖書館的文獻(xiàn)采購(gòu)帶來(lái)了巨大變化。我館從2012年開(kāi)始嘗試面向教職工的網(wǎng)上購(gòu)書模式,其中2012年網(wǎng)上購(gòu)書1654冊(cè),2013年購(gòu)書2668冊(cè),增長(zhǎng)率達(dá)到60%,獲得了教職工的一致贊賞。圖書館的藏書質(zhì)量和借閱率也得到了大大提高。
圖書薦購(gòu)的實(shí)現(xiàn)非常簡(jiǎn)單,前臺(tái)提供給讀者一個(gè)表單頁(yè)面,讀者填寫并提交圖書名稱、作者信息以及聯(lián)系方式后,文獻(xiàn)采訪人員在后臺(tái)可以根據(jù)讀者提供的信息負(fù)責(zé)購(gòu)買、加工,并通知讀者優(yōu)先借閱。一般情況下,只需2-3天時(shí)間圖書就能到達(dá)讀者的手中。圖書薦購(gòu)的后臺(tái)管理頁(yè)面如圖3所示。
圖3圖書薦購(gòu)后臺(tái)管理
4結(jié)語(yǔ)
微信作為當(dāng)下最熱門的一款即時(shí)通訊類聊天軟件,深受年輕人的喜愛(ài)。圖書館通過(guò)微信公眾平臺(tái)開(kāi)展服務(wù),可以輕松融入讀者群,以幾乎零成本的方式在讀者中宣傳圖書館,和讀者進(jìn)行互動(dòng)。公眾平臺(tái)的開(kāi)發(fā)模式可以把圖書館的服務(wù)輕松對(duì)接入微信平臺(tái),使圖書館的服務(wù)模式更加多元化,還可以對(duì)接眾多的第三方API,實(shí)現(xiàn)諸如查天氣、查快遞、查公交、看笑話、和機(jī)器人聊天等功能,增加讀者使用公眾號(hào)的樂(lè)趣。
微信雖然功能強(qiáng)大,但也不是完美無(wú)缺的。首先,基于微信公眾平臺(tái)的第三方服務(wù)的發(fā)展權(quán)掌控在騰訊手中,騰訊對(duì)微信的態(tài)度直接影響到第三方服務(wù)的發(fā)展方向。其次,微信還在不斷的完善和發(fā)展中,版本更新頻繁,只從5.0版本開(kāi)始至今已更新過(guò)14次之多。因此,圖書館需要有專門人員來(lái)開(kāi)發(fā)和維護(hù)微信公眾號(hào),以應(yīng)對(duì)版本更新可能造成的問(wèn)題。
參考文獻(xiàn):
[1] 騰訊公布2014年第二季度及中期業(yè)績(jī)[EB/OL].http://tech.qq.com/a/20140813/058951.htm,2014-08-13.
[2] 樓鋼.“985”高校圖書館微信公眾平臺(tái)現(xiàn)狀調(diào)研與分析[J].中國(guó)出版,2014,(14):34-36.
[3] 孔云,廖寅,資蕓,等.基于微信公眾賬號(hào)的圖書館移動(dòng)信息服務(wù)研究[J].情報(bào)雜志,2013,32(9):167-170,198.
[4] 武龍龍,楊小菊.基于微信公眾平臺(tái)的高校移動(dòng)圖書館服務(wù)研究[J].圖書館學(xué)研究,2013,(18):57-61,51.
[5] 張蓓,竇天芳,張成昱,等.開(kāi)發(fā)模式下圖書館微信公眾平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代圖書情報(bào)技術(shù),2014,(1):87-91.
[6] 葉佩珍.我國(guó)高校圖書館微信服務(wù)現(xiàn)狀調(diào)查研究[J].圖書館學(xué)研究,2014,(12):80-84.
[7] 微信公眾平臺(tái)開(kāi)發(fā)者文檔.自定義菜單創(chuàng)建接口[EB/OL]. http://mp.weixin.qq.com/wiki/index.php?title=自定義菜單創(chuàng)建接口,2014-08-11.
[8] 孔云.圖書館微信服務(wù)平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].圖書館論壇,2014,(2):90-95.
(責(zé)任編輯:王靖雯)