何芸
摘要:高校图书馆可以通过微信转变服务模式,将图书馆各项资源与服务移动化。本文分析了高校图书馆微信服务五层系统架构,包括资源与服务、资源的整合、微信介入服务器、微信公众号以及服务对象,并从技术上选择读者身份信息认证、阅读分享统计和阅览室座位预约,来阐述高校图书馆微信移动服务功能代码的实现。
关键词:微信公众平台;高校图书馆;移动服务
中图分类号:G251 文献标识码:A 文章编号:1007-9416(2017)05-0184-02
1 引言
随着移动互联网、数字出版、新型阅读器日渐普及,高校图书馆的资源及服务逐渐摆脱物理空间、开放时间以及校园网IP范围的限制。“读”具一格的移动阅读模式越来越受到广大读者的青睐,特别受到高校师生的钟爱。微信社公众号与用户间有较稳定的关系链,通过分析用户信息实现更大的价值。高校图书馆可转变服务模式,将图书馆各项资源和服务移动化,通过微信公众号推送给读者[1]。
2 服务系统的架构
整个系统架构分为5层,第一层为高校图书馆的资源和服务,是图書馆开展移动服务的基础,包括馆藏资源系统、服务系统、数字资源库、资源发现系统及人员信息库等。第二层是对图书馆已有资源的整合,将图书馆已有资源服务整理分类,划分为我的图书馆、资源空间和服务内容三个版块。第三层是高校图书馆微信服务器,可接入微信公众平台,在微信公众平台的开发接口基础上开展图书馆自定义服务的开发。第四层是高校图书馆官方微信公众号,这是高校图书馆移动服务的入口,通过官方微信公众号,图书馆将自己的资源和服务与服务对象建立联系。第五层是高校图书馆的服务对象,也是高校图书馆官方微信公众号的潜在用户群,包括学生、教师、教职工、馆员以及其他人员。其中最重要的模块是高校图书馆微信服务器,通过这个模块实现微信公众平台对接,微信公众平台相当于一个转发服务器,高校图书馆服务对象通过终端(手机、Pad等)发起请求至微信公众平台,然后微信公众平台将请求转发给高校图书馆微信服务器[2]。高校图书馆微信服务器上承载着官方微信自定义服务的开发实现功能,如用户身份的认证、Proxy代理、页面转换以及资源分析等功能。高校图书馆微信服务器将请求服务处理完毕后返回给微信公众平台,微信公众平台再将具体响应回复给高校图书馆官方微信公众号订阅用户的个人微信。
3 服务功能的实现
3.1 读者身份信息认证
订阅用户点击菜单“读者证绑定”之后,图书馆微信公众号会通过微信给订阅用户一个身份绑定链接,用户在链接中输入opac系统的账号信息然后通过HTTP(S)传送给图书馆微信公众号[3]。具体实现是通过认证Token获取URL,经过用户的合法认证后将个人身份信息授权给图书馆微信服务平台,然后通过Open ID将用户的UserName与UserAccount相关联,获取用户的ID(卡号)、XM(姓名)、BJ( 班级)、User YX(院系) 等信息,并保存至图书馆微信服务器端。关键代码如下:
stringsString = " Select * from User Info where UserName = @ wx Name" ;
Sql Command cSql = new Sql Command (sString,con);
……
Sql Data Adapter dtData = new Sql Data Adapter(cSql);
Data Table a Data Table = new Data Table( ) ;
dt.Fill( a Data Table) ;
if ( a Data Table. Rows. Count > 0)
{cur User. User ID = a Data Table. Rows[0]["ID"]. To String( ) ;
cur User. User XM = a Data Table. Rows[0][" XM "]. To String( ) ;
cur User.UserBJ = a Data Table. Rows[0]["BJ"]. To String( ) ;
cur User. User YX = a Data Table. Rows[0]["User YX "]. To String( ) ;
……
}
3.2 阅读分享统计
图书馆公众号在图书馆微信服务器端对订阅用户的阅读分享进行分析与统计,主要阐述两个部分的关键代码:
(1)用户每次访问都会产生一条阅读记录,通过Openid获取访问者,通过网页授权接口,将捕获的数据信息发给朋友,分享到朋友圈。
If(!string.IsNullOrEmptr(tppeStrl))
{
//识别分享类型
ShareType type = ShareType.Unknown;
Switch (typeStr)
{
case “timeline”:
type = ShareType.Timeline;
breakl
case “friend”:
type = ShareType.Friend;
break;
}
//构造分析记录
varpageShare = new PageShareEntity()
{
Id = Guid.NewGuid().ToString(),endprint
Url = GetOrigenalUrl(System.Web.HttpContext.Current.Request.QueryString[“url”]),
ParentShareOpenId = System.Web.Httpcontext. Current.Request.QueryString[“s”]),
ShareOpenId = System.Web.HttpContext. Current.Request.QueryString[“u”]),
From = type,
ShareTime = DateTime.Now
};
//保存分享记录
StatisticsBll.InsertPageShare(pageShare);
}
(2)获取到的阅读与分享记录,对阅读的分析记录按时间进行统计,并以图表形式展现处理。
//获取过去两天的数据进行统计
DataTimestartTime = DateTime.Now.AddDays(-3);
DatatTimeendTime = DateTime.Now.AddDays(1);
List
//HigeCharts时间轴的起始时间
ChartDatachartData = new ChartData
{
StartYear = startTime.Year,
StartDay = startTime.Day,
StartMonth = startTime.Month
};
//生成按小时统计的数据
While(startTime { Statistics.Add(temp.FindAll(e=>e.VisitTime>=startTime&&e.VisitTime startTime = startTime.AddHours(1); } ChartData.Statistics = statistics.ToArray(); Return chartData; 3.3 阅览室座位预约 订阅用户通过图书馆公众号自定义菜单进入座位预约界面, 座位预约系统利用 AJAX 中XMLHttp Request 对象将用户预约的座位信息发送到图书馆微信服务器后台[3]。图书馆微信服务器获取座位预约系统传来的用户预约信息后将相关信息存入后台数据库,通过回调函数在预约成功以后更新所有座位信息。关键代码如下: //新建XMLHttp Request 对象 var xml Http Req = new XMLHttp Request(); //设置回调函数, 选座成功后更新座位信息 xml Http Req.onreadystatechange = callback; //将座位信息传入后台 xml Http Req.open("GET", "Back.aspx?number=" + str +"&room =" +room +"&way=" +way+"&num="+ num, true); xml Http Req.send(null); 4 展望 微信服务平台的设计与实现只是第一步,要使用户持续关注、阅读并使用图书馆官方微信公眾号,就必须做到坚持为用户提供有价值的内容。随着微信公众平台接口的逐渐丰富,图书馆公众号还可以开展更多有益的服务,如基于位置的增强现实服务、基于身份特征的学科服务、实时交互的参考咨询、图书馆活动的群体性推广等。 参考文献 [1]周耀,董殿永.基于微信公众平台的图书馆信息服务系统构建[J].现代情报,2014,08:95-99. [2]孙翌,李鲍,高春玲.微信在图书馆移动服务中的应用研究与实践[J].图书情报工作,2014,05:35-40. [3]周瑶,刘畅,李建东.图书馆微信座位预约应用开发——以西北民族大学为例[J].现代图书情报技术,2015,No.260,No.261Z1:155-159.