微信和图书馆业务及应用系统整合研究
李丹, 李娟
西安交通大学图书馆 西安 710049
通讯作者: 李丹 E-mail: lidan2011@mail.xjtu.edu.cn

作者贡献声明:

李丹: 系统平台设计与开发, 实验及数据分析, 论文起草及最终版本修订;

李娟: 研究命题调研, 提出研究思路, 论文修订。

摘要

【目的】解决微信公众平台与图书馆业务系统及移动图书馆的整合问题。【应用背景】单一业务服务系统受众人数有限, 开放性不足, 信息推送服务形式不能满足读者的需求。【方法】利用微信公众平台丰富的API接口, 使用Java语言, 实现微信公众平台与图书馆业务系统及移动图书馆的数据集成。【结果】实现西安交通大学图书馆微信服务平台图文推送、快讯浏览、搜索整合、读者身份绑定、读者借阅信息查询、建议意见实时解答等服务。【结论】丰富微信平台的资源和功能, 提高读者访问量。

关键词: 微信公众平台; API接口; 信息整合
中图分类号:G250
Research on WeChat and Library Business and Application System Integration
Li Dan, Li Juan
Xi’an Jiaotong University Library, Xi’an 710049, China
Abstract

[Objective] To address the problems of integrating WeChat public platform with library business systems and mobile library.[Context] With limited number of audience and lack of openness for single library business services systems, traditional information push service can not satisfy demands of all readers.[Methods] Make use of WeChat public platform API combined with Java program, realizing the seamless data integration in WeChat, library business systems and mobile library.[Results] Successfully realize graphic push, news browsing, search integration, readers identification binding, readers information query, real-time reference in WeChat service platform.[Conclusions] Integration application riches WeChat service platform resources and function, and also improves readers visits.

Keyword: WeChat public platform; API; Information integration
1 引言

微信、微博、移动图书馆等Web2.0技术不断被应用在信息传播和服务中, 但移动图书馆的主动性和交互性已不能满足读者的行为习惯, 其架构的通用性、开放性也决定了覆盖的读者群体有限。

微信公众平台是腾讯公司在微信的基础上新增的功能模块, 支持PC端网页、移动互联网客户端登录方式。开发者可以利用微信API接口和业务系统数据连接, 实现微信公众平台和业务系统的数据集成[1]。微信的迅猛发展扩展了移动接入的渠道, 基于移动平台的推广和读者的需求, 如何将移动图书馆特色数字资源与现有微信公众平台集成[2], 从而拓展西安交通大学图书馆特色服务, 是解决移动图书馆用户数量少, 服务形式单一的重要思路。

本文通过对微信公众平台的深入研究, 结合西安交通大学移动图书馆, 将图书馆Millennium系统、移动图书馆数字阅读、用户借阅信息查询等服务与微信整合, 探索业务系统对接方法, 开发了西安交通大学图书馆微信服务平台(WeChat Service Platform, WeChat-SP), 实现图书馆特色文献资源和微信公众平台的深入融合和服务定制。

2 微信公众平台应用现状

微信作为一种全新的APP服务模式走进人们的视野, 微信平台发布后24个月增长速度超过Facebook, 并且渐渐国际化[3]。腾讯可视化无线建站产品“风铃” 为高校图书馆快速建立互动、社交、LBS及效果监控等为一体的服务平台提供支持工具[4]。WordPress官网推出Denishua开发的微信机木器人, 实现WordPress博客与微信公众平台的无缝对接, 成为网站、博客的智能搜索引擎[5]

笔者通过微信平台搜索统计, 截至2014年7月, 全国有包括国家博物馆、故宫博物馆、西安半坡博物馆、三星堆博物馆、广东省博物馆等201个博物馆建立了微信平台[6], 其中97家博物馆通过了身份绑定。图书馆方面, 有中国人民大学图书馆、南京大学图书馆, 上海交通大学图书馆等42所大学图书馆提供微信服务。大部分博物馆和图书馆的微信平台功能比较单一, 主要功能是定时发布消息, 以及提供部分数字资源的浏览。一些图书馆也在探索将图书馆丰富的资源通过微信平台展现的方法, 如清华大学图书馆利用指令输入方式, 实现文献资源搜索、查询[7]; 南方科技大学基于Web-of-Things(WoT)框架通过无线传感器对微信平台传递实时用户位置信息、实时天气、湿度、温度[8]

3 西安交通大学图书馆WeChat-SP架构

2013年, 西安交通大学图书馆开设微信公众平台(微信号 xjtu_lib), 由iLbrary Club管理, 该平台旨在为广大读者, 特别是校内师生提供一个信息服务的网络平台。2014年, 西安交通大学图书馆整合现有移动图书馆和Millennium系统的部分功能, 成功开发了WeChat-SP, 使得西安交通大学图书馆信息服务模式呈现多样化、广泛化、主动化态势。

3.1 WeChat-SP需求

移动图书馆的手机短信服务发送成本较高, 并且单一的图书馆信息推送服务形式已不能满足读者的需求; 服务主动性比较欠缺[9], 交互性差, 且西安交通大学移动图书馆APP的成本和日常维护费也较高。基于以上问题, 如何建立一个读者易用的, 并集可视化、语音信息及视频对话等服务于一体的平台较为迫切。通过详细调研, 相比移动图书馆、微博, 微信的信息隐私性更强[10]

微信公众平台具备高扩展性、支持定制服务、提供API。如果业务系统提供消息发送的接口, 图书馆微信开发者即可根据读者需求自由定制微信个性化服务, 整合更多的图书馆特色业务系统。微信的高可控性为图书馆不断自主新增服务提供了一种途径。

图1 西安交通大学图书馆WeChat-SP结构图

3.2 WeChat-SP设计

结合本校特点和信息化服务模式, 笔者设计开发了西安交通大学图书馆WeChat-SP, 如图1所示。WeChat-SP是由微信公众平台和业务系统对接接口组成, 主要实现基础服务和业务系统对接接口服务两部分。基础服务利用微信公众平台提供的可视化界面等基础功能实现, 主要提供新生入馆须知、常见问题等自动消息回复功能; 平台还支持馆员主动推送图文, 内容涉及iPad预约和iLibrary Space活动预约等。笔者根据消息的变化将消息分为静态消息和动态消息, 根据消息的流向把消息分为单向消息传递和双向自助服务类消息。业务系统对接接口服务主要是把图书馆Millennium系统和移动图书馆通过微信API接口整合, 实现读者身份绑定、借阅查询和移动图书馆资源查询等功能, 具体如下:

(1) 读者身份绑定, 实现“我的借阅信息” 、“我的流通通知” 、“我的建议意见服务” 功能;

(2) 当读者使用图书馆微信服务时, 主动推送“图书逾期” 、“到期提醒” 、“预约到馆” 三类流通通知;

(3) 整合图书馆近年引进的Summon搜索系统和超星的中文学术资源发现平台。实现“馆藏书目” 、“学术发现” 、“中文资源搜索” 功能;

(4) 利用微信公众平台第三方API菜单接口向读者推送“钱图快讯” , 涉及图书馆的重要通知, 如数据库的试用通知、图书馆最新消息、新书通报等。

3.3 WeChat-SP运行机制

图2所示, 微信用户通过在微信可视化界面发送消息到微信公众平台, 平台将信息封装成XML格式, 传递到业务系统对接接口, 接口接收、解析信息, 根据消息类型和内容判断对接的第三方应用系统, 读写对应的数据库, 从第三方应用系统获取回复信息后, 由接口程序对回复信息重新封装为XML 格式, 再把回复信息发送至微信公众平台, 由其最终将回复信息发送给用户。

图2 WeChat-SP运行机制

4 西安交通大学图书馆WeChat-SP实现
4.1 WeChat-SP搭建

免费申请微信公众平台账号后, 若要定制更多服务, 则需利用其API接口[11]进行开发。首先, 架设基础网络, 一般后端开发服务器, 可以使用SAE新浪云计算平台、百度云服务存储等, 本文自主部署服务器硬件平台, 这样方便灵活开发。然后, 开启微信公众平台开发模式, 填写对应URL地址和token信息, 通过Get请求和信息应答实现Web服务器成功接入。最后, 基于微信API开发业务系统对接接口程序。

4.2 业务系统对接接口实现

业务系统对接接口基于Java消息接口, 使用Tomcat 构建Web服务器, 通过调用微信公众平台API接口实现“思源搜索” 和“钱图快讯” 等菜单项, 实现图书馆馆藏书目等搜索整合; 实现读者身份绑定等功能。

获取WeChat-SP的整合服务是通过用户点击菜单项, 输入Millennium账号和密码等操作来体现的。其中, 整合资源搜索主要通过调用微信公众平台菜单API接口, 根据URL直接定向移动图书馆数字资源, 发送特定的菜单操作结构体到微信服务器, 该结构体包括菜单响应动作类型、菜单标题等, 微信服务器以一定的格式返回结果, 根据结果判断菜单是否创建成功。读者信息整合本质是微信和业务系统间的消息传递。下文重点对WeChat-SP和Millennium 系统无缝对接进行详细介绍。

(1) 读者身份绑定

图3所示, 当用户点击“我的借阅信息” 时, 微信服务器向Web服务器发送一个HTTP消息。服务器收到此消息后, 进行解析, 根据其中的参数判断是否是获取读者借阅信息的事件。此HTTP消息带有一个重要参数, 即用户在微信上的唯一ID(OpenID), OpenID是微信上的唯一用户标识。Web服务器会维护一张映射表, 该表的作用是将OpenID和读者在图书馆的Millennium账号一一对应起来。Web服务器在HTTP消息中获取到OpenID后, 在映射表中查看此OpenID是否已经映射了对应的Millennium账号。如果已经映射, 表示该读者账号已经绑定, 读者可享受“查询借阅信息” 、“续借图书” 等服务, 回复信息将以HTTP消息的形式返回给微信服务器。如果没有映射, 那么Web服务器会返回一个含有超链接的页面给微信服务器用来绑定账号。绑定账号需要三个重要参数 OpenID、Millennium账号和密码, 账号、密码由用户手动输入, 采用OAuth2.0技术从微信服务器获取OpenID。获取到以上的参数后, Web服务器进行Millennium账号密码的验证, 确认该用户是否是西安交通大学的合法用户。如果是合法用户, 则在映射表中将此对应关系保存好, 下次用户登录WeChat-SP时身份会自动绑定, 直接获取Millennium账号信息。

图3 微信账号和读者Millennium账号绑定流程

图4是读者身份绑定的全过程, 在实现和验证Millennium账号密码时, 通过与微信服务器交互调用Innovative 公司Millennium读者更新Web服务API(Innovative’ s Patron Update Web Service)[12]

图4 读者身份绑定

①接口向Millennium服务器发送HTTP请求到一个URL地址, 并建立连接, 请求执行读者信息认证。笔者把URL地址(http://IP/sms/opac/user/checkUser.action?encode=utf-8& sn=DES加密串)中的IP替换为西安交通大学图书馆Millennium系统的IP地址, 采用UTF-8编码方式, 以测试账号: 310601* * * * , 密码: * * * * * * 为例, 结合DES(Data Encryption Standard)算法, 按照一定的加密规则, 构造加密字符串, 经DES加密, 使用指定的密钥可得到加密后的sn字符串。最终加密后的URL为:

http://202.117.24.31/sms/opac/user/checkUser.action?encode=utf-8& sn=92ffbe1e9e7f42e6dd6de4adaabfb8d58d537e1348fc8fccb81d743c37f00d0164718b7d5fb4c46301bcbb20679ba7cb5f2b8d0ead585a4f782038a9f9811b02750d74cb32c089ea;

②Millennium服务器监听请求, 发出HTTP应答信息, 以不同的信息值反馈接口连接是否成功以及认证是否可以进行;

③接口把内存缓冲区中封装好的完整HTTP请求发送到Millennium服务器端;

④读者更新Web服务API处理之后, Millennium服务器端发出应答, 经过验证后, 如果用户名、密码合法, 则Millennium服务器会返回给接口{"code":1}信息, 反之用户信息不合法, 返回{"code":0}信息;

⑤接口处理Millennium服务器返回的应答信息, 获取读者身份是否合理, 是否可以绑定。

(2) 读者借阅信息查询

图5所示, 微信服务器发送“我的借阅信息” 事件到Web服务器, 接口根据读者证号和密码, 对接Millennium系统数据库, 获取该读者借阅图书的基本信息, 如是否达到续借条件、是否超期、超期时间等; 根据纸本流水号、读者证号和密码续借纸本, 自动验证纸本是否符合续借条件, 返回续借操作是否成功。

图5 获取读者借阅信息

读者借阅信息获取过程如图6所示, 读者 Web 服务相关的属性和调用行为是通过WSDL (Web Service Definition Language)描述的, 首先把WSDL转换成Java 程序。由于西安交通大学图书馆在用Millennium系统不提供直接获取读者全部详细借阅信息的API接口, 因此读者部分图书借阅信息可通过对接图书馆Millennium API接口获取, 部分借阅信息通过页面分析、抓取获取。

图6 读者借阅信息获取

然后, 读者信息获取模块利用Patron Update Web Service API获取读者目前在借图书总数; 利用Fines Payment Web Service API 获取读者借阅欠款情况, 如欠款图书的名称、书目条形码、图书到期归还时间、欠费金额等信息; 而没有欠费读者的在借图书信息通过页面抓取获取, 通过HTTP协议访问Millennium系统, 对该协议返回的页面信息进行DOM解析, 封装转化为所需的字段信息, 展示到微信。

笔者以使用Fines Payment Web Service API查找操作为例。在调用查找操作时, searchString 形参以字符b开头, 后接读者借书证号。查找操作返回的读者对象信息集包括读者借书欠款记录的所有字段。从Millennium数据库中获得读者借阅信息欠费记录的算法如下

输入: 调用Web服务查找读者欠费操作的合法用户名、密码和searchString值

输出: 读者借书证号、欠款图书名称、书目条形码、图书到期归还时间、欠费金额

①根据图书馆Millennium系统域名或IP地址, 构造一个URL请求

https://西安交通大学图书馆Millennium系统域名:端口号843/iii/patronio/services/PatronIO

②与Millennium Web服务PatronIOService绑定, 把上述消息发送给Millennium系统;

③根据输入参数, 调用searchPatrons方法, Millennium系统返回读者对象信息集;

④经过过滤, 输出需要的信息字段。

利用Patron Update Web Service API获取读者目前在借图书总数的方法与以上算法类似, 由于开发需要, 页面抓取方法要求Millennium系统可外网访问, 网页抓取读者详细借阅信息实现方法过程复杂, 有待改进, 如有更多大量Millennium功能定制, 需另外提供接口。

最后, 与数据库交互模块把从Millennium数据库中读出的信息写入读者借阅信息数据库, 之后显示到微信界面。考虑到频繁读取Millennium数据库会影响其运行速度, 项目组建立了一个读者借阅信息数据库, 导入数据时充分考虑读者身份的唯一性。读者每次查询时, 先与该数据库交互查询, 如果有该读者借阅信息则直接显示在微信界面, 否则再访问Millennium数据库, 在一定程度上该库起到了缓存池的作用。

5 应用效果评估

目前西安交通大学图书馆WeChat-SP已经运行半年, WeChat-SP Web服务器采用Dell PowerEdge R620机架式服务器, 配备12核至强处理器, 选用Linux 64位操作系统, Tomcat7, JDK6.0。

(1) 用户统计评估

图7所示, 截至2014年7月18日, 注册微信用户3 071人, 大部分是在校师生。随机截取2014年4月1日至7月14日微信用户数据, 4月1日微信关注人数只有1 092人, 随着宣传力度的加强和平台丰富度的增强, 用户数直线上升, 特别是本馆利用WeChat- SP鼓励读者通过微信预约iPad后, 用户数迅速增长。

图7 WeChat-SP 4月-7月累计人数

(2) 功能统计评估

读者使用较多的功能是读者借阅信息查询、思源搜索等。基础接口、自定义菜单接口和高级接口每日调用次数均衡分布, 如图8所示。读者发送信息到WeChat-SP咨询有关图书馆业务问题, iLibrary Club同学在馆员老师的指导下进行实时回复。

图8 接口调用次数趋势图

(3) 用户行为分析评估

笔者抽取2014年4月1日至7月14日的群发消息, 分为4类主题: 好书推荐; 讲座、服务; iLibrary Space活动预告和钱图快讯。图9统计结果显示阅读平台图文页的读者人数远远高于阅读原文页面的人数, 且分享转发人数相比阅读原文页人数也略高。说明在微信平台直接嵌入显示界面是读者喜欢的一种方式, 同时, 如果图文链接原文地址是在图书馆或者学校主页内, 且是学生感兴趣的消息, 图文页、原文页、分享转发人数都比较多。其中, 有关西安交通大学图书馆iLibrary Space活动预告主题的消息备受关注; 6月份期间有关学位论文提交的通知在讲座、服务类主题消息中阅读人数较多, 因此在一定程度上, 消息发布时间点对阅读人数影响很大。大部分读者反馈WeChat-SP给他们使用图书馆服务提供便利, 是一种全新的信息服务模式。

图9 4类主题消息阅读人数对比

(4) 目前存在的主要问题

WeChat-SP推送的图文消息能够引起读者兴趣的高质量信息较少; 虽然推送内容在不断更新, 但是同时带来一些问题 低质量信息推送的频度问题、推送过多图文信息会造成读者的审美疲劳, 甚至取消关注等。图10显示2014年4月到6月间内, 陆续有读者取消关注, 但每天净增人数仍然为正数。

6 结语

通过整合现有图书馆业务系统到WeChat-SP, 探索整合微信公众平台和图书馆服务, 实现个性化定制服务的可行性方法。目前WeChat-SP基本实现了微信公众平台与业务系统的无缝集成, 但是读者的流通通知单信息获取有待进一步完善, 图书馆WeChat-SP个性化开发有待加强, 如加入图书馆座位查询、图书荐购预约, 关联网络上图书资源[13], 丰富用户体验; 对接iLibrary Space空间预约系统; 连接校园一卡通系统, 根据读者欠费情况实现读者一站式缴纳罚款, 进一步实现“微信+微信网站+图书馆主页网站” 的一站式管理系统。

参考文献
[1] 王保成, 邓玉. 微信公众平台在国内图书馆服务中的应用实践研究[J]. 图书情报工作, 2013, 57(20): 82-85, 91.
(Wang Baocheng, Deng Yu. Study on the Application of Public Platforms of WeChat in Chinese Library Services [J]. Library and Information Service, 2013, 57(20): 82-85, 91. ) [本文引用:1] [CJCR: 1.193]
[2] 叶海智, 刘强, 尹丹丹. 基于微信的图书馆移动信息服务设计与实现[J]. 软件导刊, 2013, 12(11) 88-90.
(Ye Haizhi, Liu Qiang, Yin Dand an. Library Mobile Information Services Design and Implementation Based WeChat[J]. Software Guide, 2013, 12(11) 88-90. ) [本文引用:1]
[3] Value2020: First World Map of WeChat User Base [EB/OL]. [2013-01-11]. http://archive.today/oFc2T. [本文引用:1]
[4] 腾讯“风铃”正式上线基础版免费 [EB/OL]. [2013-12-11]. http: //tech. qq. com/a/20131211/014910htm.
( Tencent "Campanula" Formally Launched, Basic Edition Free [EB/OL]. [2013-12-11]. http://tech.qq.com/a/20131211/014910.htm [本文引用:1]
[5] 微信机器人[EB/OL]. [2014-07-25]. http: //wordpress. org/plugins/weixin-robot/developers/.
( WeChat Robot [EB/OL]. [2014-07-25]. http://wordpress.org/plugins/weixin-robot/developers/ [本文引用:1]
[6] 李秀娜. 微博/微信: 博物馆自媒体应用经验谈[J]. 中国博物馆, 2013(4): 97-102.
(Li Xiuna. Weibo / WeChat: Museum Self-media Applications Experience[J]. Chinese Museum, 2013(4): 97-102. ) [本文引用:1] [CJCR: 0.188]
[7] 张蓓, 窦天芳, 张成昱, . 开发模式下图书馆微信公众平台服务的设计与实现[J]. 现代图书情报技术, 2014(1): 87-91.
(Zhang Bei, Dou Tianfang, Zhang Chengyu, et al. Design and Implementation of Library WeChat Public Platform Service under Development Mode[J]. New Technology of Library and Information Service, 2014(1): 87-91. ) [本文引用:1] [CJCR: 1.073]
[8] Huang Y T, Lai X Z, Dai B P, et al. Web-of-Things Framework for WeChat [C]. In: Proceedings of the 2013 IEEE International Conference on Green Computing and Communications, Beijing, China. IEEE, 2013: 1496-1500. [本文引用:1]
[9] 江波, 覃燕梅. 我国移动图书馆五种主要服务模式的比较研究[J]. 图书馆论坛, 2014(2): 59-62, 89.
(Jiang Bo, Qin Yanmei. Comparative Study of the Five Major Service Modes of China’s Mobile Library [J]. Library Tribune, 2014(2): 59-62, 89. ) [本文引用:1] [CJCR: 2.213]
[10] Li J. Tencent WeChat and SINA Weibo: The Frenemies of the Chinese Mobile Space [EB/OL]. [2014-04-16]. http://www.forbes.com/sites/junhli/2014/04/16/tencent-wechat-and-sina-weibo-the-frenemies-of-the-chinese-mobile-space/. [本文引用:1]
[11] 微信公众平台开发接口介绍[EB/OL]. [2013-04-20]. http: //mp. weixin. qq. com/wiki/index. php.
( Development Interface Guide of WeChat Public Platform [EB/OL]. [2013-04-20]. http://mp.weixin.qq.com/wiki/index.php [本文引用:1]
[12] 李丹, 闫晓弟, 耶健, . 基于开放源码软件Freeradius的无线网络认证系统实现[J]. 中国现代教育装备, 2012(17): 65-67.
(Li Dan, Yan Xiaodi, Ye Jian, et al. Wireless Network Authentication System Based on Openning Source Software[J]. China Modern Educational Equipment, 2012(17): 65-67. ) [本文引用:1] [CJCR: 0.4229]
[13] 李丹, 闫晓第, 魏青山. Drupal的混搭技术在图书馆的应用[J]. 现代图书情报技术, 2013(10): 79-84.
(Li Dan, Yan Xiaodi, Wei Qingshan. Application of Mashup in Library Based on Drupal[J]. New Technology of Library and Information Service, 2013(10): 79-84. ) [本文引用:1] [CJCR: 1.073]