图书馆微信服务平台的设计与实现
2014-03-14薛秀珍张仲华
孔 云, 廖 寅, 资 芸,薛秀珍, 张仲华
图书馆微信服务平台的设计与实现
孔 云, 廖 寅, 资 芸,薛秀珍, 张仲华
针对图书馆界和情报界对微信的关注和应用的不足,提出构建基于微信的图书馆移动信息服务平台的总体思路,阐述了平台的使用需求和可行性、服务平台的设计方法、核心原理和关键实现技术。结合昆明理工大学图书馆构建的微信服务平台,向业界分享平台的构建方法和使用经验。
微信 微信公众账号 开放接口 移动信息服务 社交网络
0 引言
微信作为新兴的即时通讯产品正成为移动互联网时代的新时尚,越来越多的企业和机构进驻微信公众平台探寻新的商业机会,为用户带来各种各样的内容和体验。当前各行各业都在积极探索适合行业特点的微信服务方式,而图书馆界对微信的关注和研究应用明显落后于其他行业,本文在借鉴和参考其它行业的成功案例的同时,通过介绍昆明理工大学图书馆(以下简称“昆明理工馆”)搭建的微信服务平台的方法,阐述开展微信应用的方法和总结实际应用经验,为同行开展微信服务提供一种经验和参考。
1 图书馆微信服务平台需求和可行性分析
1.1 图书馆微信服务需求分析
国内图书馆界从2003年开始推出移动信息服务,目前有相当数量的图书馆开展移动信息服务[1]。毫无疑问,移动信息服务是图书馆的重要发展方向和服务增长点[2]。
作为国内首创和自主研发的新兴的移动应用,微信2011年推出之时起就备受关注。微信具有信息表现形式多样化、用户高学历化、用户群庞大、运营团队强大、成长潜力巨大和具有社交网络属性等诸多特点和优势[3]。从微信用户年龄段看,19-40岁的用户占75%以上,说明微信用户的主力军为青年人,高等院校是青年人高度聚集的地方。从学历看,专科以上学历的微信用户占七成以上,说明微信的主要用户为高学历人群,高等院校是高学历人才聚集的场所[4]。据CNNIC网调统计数据显示,微信的迅猛发展丰富了移动接入的渠道,为各种机构拓宽服务内容提供了可能的方法[5]。高校图书馆作为主要的信息服务中心,迫切需要建立适应时代需求的信息服务平台,微信是符合时代需求的高新技术产品,其在图书馆信息服务方面有巨大的应用需求。
1.2 图书馆微信服务平台建设可行性分析
1.2.1 应用构建可行性分析
当前基于微信公众账号的应用没有固定的模式,但是其他行业已经探索出了一些应用案例,图书馆可以借鉴这些成功案例。例如,各种自媒体公众账号纷纷涌现,传统媒体也逐步开设公众账号发布内容,向用户推送精选内容;用户获取资讯的方式从博客、微博等逐渐迁移至微信;微信公众平台渐渐成为企业营销渠道、客户关系管理和业务办理的新工具,嗅觉灵敏的商业银行、民用航空、酒店、医院、电商等行业已开始尝试使用这个平台。各行各业都在积极探索适合行业特点的微信服务方式,取得了积极的成果。当前基于微信公众账号的服务方式主要有基于查询的服务方式、基于注册用户的服务方式、基于LBS的服务方式和主动推送服务方式等四种。图书馆可以充分借鉴其他行业的经典案例,把各种业务和应用延伸到微信平台上,以适应用户移动获取和移动办理业务的时代需求。
1.2.2 技术可行性分析
微信公众平台是一个开放的平台,任何机构和个体都可以免费申请注册并拥有自己的公众账号。同时微信公众平台开放了其API接口,任何机构都可以开发并构建基于开放接口的第三方服务平台,实现和机构应用的无缝对接。微信官方为开发者提供了详实的开发文档和代码示例,保证了开放接口的顺利搭建。
2 图书馆微信服务平台搭建
微信第三方服务平台是由微信公众平台和第三方用户搭建并开发基于微信消息接口的应用组成的。微信公众平台为所有用户提供了基础功能,第三方开发者的着力点在于如何实现开放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 图书馆微信服务平台实现的关键技术
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 图书馆微信服务平台的使用效果
昆明理工馆结合本馆实际,开展了基微信公众账号的移动信息服务,经过一年多的使用和积累,取得了初步的经验和效果。如图4所示,目前能为读者提供以下服务:一是消息主动推送服务,图书馆员会推送有价值的学术讲座信息给读者,同时推送一些紧急通知,在推送消息时,只推送对读者有价值的信息和读者关心的信息,坚决不推送广告和与读者无关的信息,尽量避免因消息内容不适而导致读者流失的问题;同时收集图书馆的常用信息和读者关心的问题,并形成标准答案供读者查询,比如开馆时间,借阅规则,机构设置,机构电话,馆藏分布情况等;二是利用微信第三方消息接口服务器,结合图书馆门禁系统,实现读者利用微信实时查询进馆人数,让领导和读者可以随手把握图书馆使用人数;结合图书馆自修座位管理系统,读者可以实时查询自修座位使用情况和剩余数量,为读者是否到图书馆上自习提供参考,解决读者必须到图书馆才能知道是否有座位的问题。
目前昆明理工馆积累了1800多位微信用户,绝大部分用户为该校的学生、老师和业界同仁,随着用户获取信息习惯的变化和图书馆宣传力度的加强,用户数在不断地增长。目前读者使用较多的功能为借阅规则、进馆人数、自修座位等查询。从昆明理工馆使用反馈来看,普遍的评价是非常感兴趣,有很高的使用价值,纷纷表示要建立自己的微信服务平台。从读者反馈的信息来看,接受采访的读者表示为他们了解和使用图书馆带来了便利,拓展了了解和使用图书馆的途径等;同时也有读者反馈目前的微信太弱智,功能不够丰富。
5 结语
微信作为一种新兴的及时通讯技术和产品,目前仍然在不断地成长和完善之中。基于微信公众账号的第三方服务平台的发展主动权仍然掌控在腾讯公司,笔者认为,微信第三方服务平台的生命力来自于三个方面:一是微信能否持续成为腾讯公司未来的战略产品;二是微信团队能否推出更具创新性的功能和更加丰富灵活的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