图书馆网站与腾讯社交网络对接设计
2014-03-13李文江陈诗琴
李文江,陈诗琴
图书馆网站与腾讯社交网络对接设计
李文江,陈诗琴
文章针对如何解决腾讯社交网络与图书馆网站对接的问题,将图书馆网站(内网)信息提取到信息聚合网站(公网)上,使用腾讯开放平台SDK开发包对信息聚合网站进行二次开发,实现读者通过QQ登录信息聚合网站,分享图书馆服务信息和免输入认证信息访问个人图书馆的功能。
社交网络 图书馆网站 QQ登录 QQ空间 信息分享
社交网络以人际关系为纽带,以用户产生的信息为核心,是近年来兴起并在短时间内迅猛发展的互联网服务平台,其信息传播具有即时性、内容分享的高效性以及用户脉络的无限延展性的特点,这些信息传播的特点正契合了图书馆的服务内涵。如何将图书馆主动服务拓展到社交网络上,建立图书馆与读者的新型交互社区是图书馆亟需解决的问题。
1 图书馆网站与社交网络对接现状及需求
社交网络已成为最近几年国内图书馆界研究的一个热点[1-3]。随着它在图书馆服务领域应用的加深,相应的研究成果不断涌现[4-6]。图书馆与社交网络对接的方式主要分为两种。
(1)引进社交网络方式。引进现有著名的社交网络平台,在平台上建立图书馆自己的专页。国外,美国国会图书馆在Facebook上建立专页[7],布鲁克林大学图书馆[8]和美国图书馆协会在Myspace上建立专页[9];国内,清华大学图书馆书友会在人人网上建立专页[10],厦门大学图书馆建立新浪微博[11],上海师范大学图书馆在开心网上建立专页[12]。
专页上信息更新方式主要有两种:一种是直接在专页管理模式上手工更新信息。该方式操作简单且易于维护,但时效性较低。另一种是调用Facebook、Myspace、Twitter、腾讯、新浪、人人网、开心网和豆瓣网等社交网络的开放平台所提供的免费API,对图书馆网站进行二次开发,实现信息共享对接,自动将图书馆信息分享到专页上。
(2)自主开发社交网络方式。图书馆可根据用户需求、自身条件开发合适的社交网络服务,不受现有的社交网络服务方式的限制,能更准确地解决特定目标人群的信息需求,如重庆大学图书馆个人书斋系统[13]。这种模式对图书馆的技术水平、资金力量都有较高的要求,且受众面小,不如大型社交网络使用范围广,所以不是所有图书馆都适用这种方式。
重庆文理学院图书馆网站处于被动访问状态,访问量小,且不能通过外网访问。图书馆的服务信息受限于传播平台和校园内网,不能有效传递给读者。而图书馆的服务对象在国内社交网络上十分活跃,大部分读者有自己的腾讯QQ以及QQ空间,几乎每天都会登录腾讯QQ和访问QQ空间,甚至很长时间不下线。若将图书馆的服务融入QQ空间中,可以突破校园内网的限制,扩大图书馆的受众面,参与读者的文化世界,实时了解读者的需求,提升图书馆在读者个人文化生活中的影响力。
2 对接设计思路
针对图书馆网站现状,经过研究,本设计提出了在校内公网上建立信息聚合网站(以下简称“聚合网”),提取图书馆服务信息,再引进腾讯开放平台(以下简称“平台”)与聚合网进行信息分享的对接推广方案。具体而言,首先申请一个图书馆QQ号码,并开通QQ空间,同时在平台上给信息聚合网申请加入QQ登录功能;其次在聚合网中调用QQ登录API,读者通过QQ登录聚合网后,可以将感兴趣的信息分享到自己QQ空间上,也可直接访问“个人图书馆”,无需再次输入认证信息。整个对接实现过程如图1所示。主要分为三个部分。
(1)提取服务信息:将图书馆网站上的信息按照栏目进行分类自动提取储存在数据库中,然后在公网网站展现出来,实现信息的发布。
图1 图书馆网站与腾讯开放平台对接实现流程
(2)分享服务信息:管理员利用图书馆QQ号码登录聚合网后,可以将信息批量分享到图书馆QQ空间中;读者利用QQ号码登录聚合网或直接登录图书馆QQ空间时,也可以将感兴趣的信息分享到自己QQ空间上,同时还可以对信息进行评价。若读者添加了图书馆QQ为好友,QQ会充分利用好友关系,将图书馆QQ空间上的所有信息会自动推送到其他读者的空间上,从而实现信息的广泛自动推送传播。
(3)访问“个人图书馆”:读者登录聚合网,将QQ号码与读者号码进行绑定后,可以点击“个人图书馆”链接,直接访问图书馆网站上的“个人图书馆”,不用再输入读者号和密码。
3 对接具体实现
3.1 信息提取
为了不受图书馆网站数据库结构和连接信息等修改的影响,本设计采用了直接在网站页面提取信息的方式,提取所需的信息(即便网站页面结构作了调整,也只需将提取程序作简单修改即可);并将信息提取程序页面和提取后的信息发布页面都放在聚合网中。
首先,将图书馆网站要提取的栏目链接地址储存在数据库表中,储存内容如表1所示。
表1 图书馆网站栏目信息表part_info
然后,利用HttpWebRequest和HttpWeb Response打开栏目链接地址对应的信息标题列表页,利用Stream Reader获取其页面的源文件文本。运用Regex正则表达式,匹配提取文本中所有信息标题的链接地址。
运用以上获取网页源文件的方法,获取信息标题链接对应的详细内容页的HTML代码,确定其中信息标题、信息内容、作者和发布时间等内容所在的HTML标签位置,然后用InnerText方法提取文本信息。由于同一栏目所有详细内容页的结构都相同,则可用同样的方法,循环提取所有信息文本[14]。
按照以上提取方法,为每个栏目封装一个提取程序页面,然后定时循环执行每个程序,提取对应信息,将其文本存储在数据库表中,储存内容如表2所示。
表2 图书馆网站信息记录表lib_info
最后,建立信息发布页面(即聚合网首页),通过Repeater数据控件将数据信息展示出来。
3.2 QQ登录应用实现
首先根据平台用户QQ登录技术实现的要求[15],利用图书馆QQ号码进行应用申请,获取平台应用程序的唯一标识APP ID和密钥KEY。再根据平台对QQ接入流程[16]和实际设计需要,设计实现QQ登录。其流程见图2。
3.2.1 QQ登录SDK选择
平台为第三方网站接入提供了JS SDK、PHP SDK、.NET SDK和Ruby On Rails SDK等接入方式。由于聚合网采用.NET开发,所以本研究选择张善友开发的.NET SDK[17],开发QQ登录功能。它的主要成员及功能见其开源代码。
3.2.2 QQ登录程序设计
在聚合网中添加引用QConnectSDK.dll类库,参照.NET SDK使用说明[18]进行web.config配置和QQ登录程序设计。
图2 QQ登录实现流程
在QQ登录程序页面中添加QConnect SDK. Context引用,建立QQ登录程序,其实现过程如下:
(1)调用GetAuthorizationUrl(state,[scope])函数。其中state参数表示client端的状态值。scope参数表示请求用户授权时向用户显示可进行授权的列表。
(2)给GetAuthorizationUrl函数赋值。将Guid. NewGuid()获取client全局唯一标识符赋值给state参数;将QQ登录的API文档[16]中列出的接口名称(多个接口名称间用逗号分开)赋值给scope参数。
(3)执行GetAuthorizationUrl函数,获取Authorization Code的URL地址,该地址由Call-BackURI、code和state参数值组成。
(4)执行Response.Redirect(URL)方法,登录聚合网。
在聚合网首页中添加QConnectSDK引用,建立获取QQ登录用户信息程序:
(1)从登录网站的URL地址中获取code和state参数值。
(2)将获取的参数值传递给QOpenClient类的New方法,获取当前登录QQ的QOpen Client类。
(3)建立一个全局变量,保存当前登录QQ的QOpenClient类,为获取QQ用户信息、信息分享和绑定读者号作准备。
3.2.3 服务信息分享
调用QOpenClient类的AddFeeds分享接口,可以把文字、图片、视频和用户评论(分享理由)等信息以用户的名义发布一条动态(feeds)到QQ空间上。主要实现方式:
(1)管理员批量分享。当聚合网在提取图书馆内网网站新信息后,管理员用图书馆QQ登录聚合网,则可将信息批量分享到图书馆QQ空间中。
(2)读者主动分享。读者看到感兴趣的信息时,则可以通过信息标题后面的“分享”按钮,直接分享到自己QQ空间中。
(3)通过QQ好友关系进行分享。登录曾分享过图书馆信息的好友空间,也可以将好友的信息分享到自己空间上。
3.2.4 访问“个人图书馆”
由于“个人图书馆”也位于内网中,不能直接利用QQ登录技术来实现登录,在本研究中采用QQ绑定读者号和密码,然后利用POST提交方式将绑定的账号和密码带入到“个人图书馆”登录网页入口处,从而利用QQ登录实现间接访问。
(1)QQ与读者信息的绑定。调用QOpen-Client类的OAuthToken函数,获取QQ唯一标识OpenId,将OpenId与图书馆读者号和密码进行绑定,并储存在数据库表中,储存内容如表3所示。
表3 用户信息关联表user_info
(2)登录实现方法。在聚合网上,建立一个登录图书馆网站的“个人图书馆”页面,页面中Form表单结构与图书馆网站中登录“个人图书馆”页面的Form表单结构相同。当点击聚合网的“登录个人图书馆”按钮,就获取当前用户绑定的读者号和密码,通过POST方式提交给登录页面的Form表单中读者和密码域并执行登录。登录成功后则跳转到“个人图书馆”页面。
4 应用效果
4.1 QQ登录效果
访问聚合网时,会跳转到由平台提供的QQ账号安全登录页面,根据QQ号码登录到聚合网(当QQ首次登录时会跳转到认证授权页面进行授权)。其效果如图3所示。
图3 图书馆信息聚合网站
4.2 QQ空间分享效果
在聚合网上点击相应导航菜单,可以显示相应的信息,点击信息标题后的分享图标按钮,则可以分享该条信息到QQ空间上。将信息分享到图书馆QQ空间上的效果,如图4所示。
4.3 访问“个人图书馆”
在聚合网上输入读者号和密码绑定QQ。绑定前需要通过读者号和密码验证读者身份是否合法,合法才能绑定。绑定成功后,直接点击“登录个人图书馆”,进入图书馆网站的个人图书馆页面。
根据QQ互联开放平台管理中心的统计数据显示,自聚合网建立并使用“QQ登录”功能以来,共有805位读者授权使用此应用,对图书馆内网网站信息进行很好的推广。
5 结语
在没有修改图书馆网站的前提下,本设计利用QQ互联开放平台提供的QQ登录功能与SDK开发包,设计实现了图书馆网站服务信息的分享和“个人图书馆”登录。为了充分利用腾讯社交网站平台,可将图书馆其他应用系统与其对接,实现更为丰富的社交功能,这也是下一步研究的方向。新浪微博、人人网和开心网等其它社交网络开放平台,可以采取相同的开发思路和技术路线与图书馆网站实现对接。
图4 图书馆QQ空间分享聚合网站信息
[1]王欣,王程.数字图书馆社会网络化之路[J].图书情报工作,2011(19):73-77.
[2]苏建华,汪初芸.国内外高校图书馆应用SNS的比较研究[J].情报资料工作,2011(2):102-104.
[3]武琳,冯园媛.SNS在图书馆的应用及发展策略[J].图书情报工作,2010(19):24-27.
[4]李金波,李书宁.国外高校图书馆社交网络应用调查与分析-以Facebook为例[J].图书情报工作,2012(3):75-79.
[5]肖铮.使用OAuth服务实现图书馆网站与社交网站对接[J].现代图书情报技术,2012(2):87-91.
[6]姚飞,张成昱,陈武.图书馆服务与社交网络整合研究-清华大学图书馆书友会实践案例[J].图书馆杂志,2011(6):25-30.
[7]http://www.facebook.com/libraryofcongress.
[8]http://www.myspace.com/brooklyncollegelibrary.
[9]http://www.myspace.com/atyourlibrary.
[10]http://page.renren.com/600002731?checked=true.
[11]http://e.weibo.com/xmulibrary?type=0.
[12]http://www.kaixin001.com/home/?uid=61642253.
[13]http://lib.cqu.edu.cn/open/info/infoArticleList.htm?order=look&id=31355220194699.
[14]李文江,李兴春.基于RSS2.0的新闻信息提取与发布[J].重庆文理学院学报(自然科学版),2008(6):23-26.
[15]http://connect.qq.com/intro/login/.
[16]http://wiki.opensns.qq.com/.
[17]http://qzonestyle.gtimg.cn/qzone/vas/opensns/res/doc/Connect_.NET_SDK_for_OAuth2_V1.1.zip.
[18]http://www.cnblogs.com/shanyou/archive/2012/02/05/2338797.html.
Docking Design for Library Website and Tencent SNS
LI Wen-jiang,Chen Shi-qin
This article states how to set up a connection between library website and Tencent SNS,so that we could extract the information from library website (intranet) to the website of information syndication(public network).Using SDK,the Tencent open platform,to develop information syndication websites for the second time,libraries could make readers login information syndication website through QQ accounts,so as to share library service information and to access personal libraries without authentication information.
SNS;library website;QQ login;Qzone;information sharing
格式 李文江,陈诗琴.图书馆网站与腾讯社交网络对接设计[J].图书馆论坛,2014(1):74-79.
李文江(1978-),男,硕士,实验师,任职于重庆文理学院教务处;陈诗琴(1981-),女,硕士,重庆文理学院图书馆馆员。
2013-03-29