微信公众平台下的个性化书屋的制作方法

文档序号:15131383发布日期:2018-08-10 07:54阅读:601来源:国知局

本发明涉及一种微信公众平台下的个性化书屋,属于数字化信息技术领域。



背景技术:

随着现在通讯技术飞速发展,作为时下最热门的免费即时手机通讯聊天软件,微信成为一个很好的移动信息传播交互平台,而微信公众平台是在微信的基础上新增的功能模块,是面向一些机构推出的合作推广业务,如政府、企业、媒体等,它可以通过推送文字、图片、语音、视频、音乐等消息、设定自动回复或一对一交流等方式,向关注用户提供更好、更全面的服务,从而达到推广的目的。目前,将微信公众平台作为高校图书馆的借阅拓展渠道,是时下发展的趋势。目前,国内对微信公众平台下的类似书屋基本实现能发表需求书籍和捐赠闲置书籍,但未设置有区域性校园级别权限的保障点。以“共享书屋”为关键词能查找到少量小程序和微信公众号,但对于高校学生之间,所在高校共享图书微信公众平台欠缺,且国内对类似书屋免费借阅城市化模式也尚处于开始阶段,尚未成型。

从平台技术上看,微信官网提供了详细的技术文档和sdk(软件开发工具包),但是按照腾讯官方技术文档开发效率低下,且编程难度较大。目前,腾讯官方只提供了基于php环境的sdk,因此,出现了很多第三方sdk。尽管如此,目前仍然较少发现开源sdk的应用设计,而且在检索的设计类文档中,主要是基于php环境进行开发。



技术实现要素:

本发明的一个目的是解决至少上述问题,并提供至少后面将说明的优点。

本发明还有一个目的是提供一种基于微信公众平台的个性化书屋,书屋web应用系统,选择java作为开发语言,基于开源sdk控件,从微信公众平台发送的xml消息解析、与书屋业务系统建立信息查询和将获取的查询信息进行xml封装等方面,实现书屋业务嵌入微信的应用。本发明对建设校园文化,推动校园建设发展具有积极的意义。

为了实现根据本发明的这些目的和其它优点,提供了

一种微信公众平台下的个性化书屋,其特征在于,包括:

用户关注书屋微信公众帐号后,通过客户端在微信公众平台向所述公众账号发送请求;

微信服务器通过超文本传输协议提交(httppost)方式以可扩展标记语言(xml)格式将所述请求发送给公众账号服务器;

所述公众账号服务器先对所述请求进行身份校验,确保来自微信服务器,对所述校验成功的请求进行解析,将解析出来的请求进行业务逻辑处理,把处理结果转换成所述可扩展标记语言格式的字符串后发送给所述微信服务器;其中,所述身份校验包括:获取所述请求的4个参数,签名(signature)、时间戳(timestamp)、随机数(nonce)和随机字符串(echostr);将令牌(token)、所述时间戳和所述随机数按字典序排序;将排序后的3个参数按顺序拼接成一个字符串,并对所述字符串进行安全哈希算法1(securehashalgorithm1,sha1)加密;将经过所述安全哈希算法1加密后的字符串与所述签名参数进行对比,如果相等则该请求来自微信服务器,需要原样返回所述随机字符串参数;

所述微信服务器将所述处理结果发送给用户所述客户端。

优选的,微信公众平台下的个性化书屋中:所述用户关注所述书屋微信公众账号时,所述公众账号服务器自动向读者发送欢迎词和操作说明;所述用户发送的请求包括用户学号,所述公众账号服务器接收并解析所述请求,获取所述用户学号和微信账号,存储在我的结构化查询语言(mysql)数据库中,为信息查询模块调用学号做准备;所述用户取消所述书屋微信公众账号关注后,将从所述数据库中删除存储的所述用户学号相关信息。

优选的,微信公众平台下的个性化书屋中:所述公众账号服务器将所述请求消息类型分为,文本、图片、语音、视频、地理位置、链接和事件推送;将所述业务逻辑处理类型分为,订阅、取消订阅、扫描带参数二维码、上报地理位置和自定义菜单;将所述处理结果消息类型分为,文本、图片、语音、视频、音乐和图文。

优选的,微信公众平台下的个性化书屋中:所述公众账号服务器通过网上书店畅销排行榜定期为所述用户推荐热门书籍。

优选的,微信公众平台下的个性化书屋中:所述公众账号服务器通过基于标签的协同过滤推荐算法为所述用户推荐书籍,包括:

将用户-标签-书籍三维关系分解为用户-标签、标签-书籍2个二维关系,在用户-标签关系中计算用户对标签标注频率和标签对用户的逆向频率,在标签与书籍关系中计算标签对书籍标注频率和频率对标签的逆向频率;构建用户对资源的兴趣模型,分别计算用户与标签的关联度、书籍与标签的关联度,再计算用户对书籍的兴趣;计算书籍的相似度,根据不同书籍被同一标签标注的次数评估书籍之间的相似度,采用jaccard系数计算得到书籍的相似度;预测目标用户对待推荐新书籍的兴趣度,根据构建的用户对书籍的兴趣模型,以及待推荐新资源与已标注书籍的相似度计算得到目标用户对新书籍的兴趣度;将目标用户对于新书籍的预测兴趣度按照从大到小排序,取出排名靠前的书籍作为最终推荐集并输出。

优选的,微信公众平台下的个性化书屋中:采用java开发语言,基于开源sdk控件进行开发;选择eclipse开源工具,使用开源框架dom4j和xstream来实现xml消息的解析与封装工作。

优选的,微信公众平台下的个性化书屋中:为所述用户提供推荐好友的功能,增加自定义菜单权限,采用菜单向导方式,并利用学校组织者身份对所述书屋微信公众帐号进行认证。

本发明至少包括以下有益效果:

1、可以嵌入微信平台;

2、以最小成本开发利用现有资源;

3、提供个性化服务,方便用户查询书籍信息;

4、提供高校共享图书微信公众平台,推动校园建设发展。

本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。

附图说明

图1为本发明所述微信公众平台下的个性化书屋的框架图。

具体实施方式

下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。

应当理解,本文所使用的诸如“具有”、“包含”以及“包括”术语并不排除一个或多个其它元件或其组合的存在或添加。

本发明的微信公众平台下的个性化书屋,包括:

用户关注书屋微信公众帐号后,应用系统自动向读者发送欢迎词和操作指令。用户通过客户端在微信公众平台向所述公众账号发送请求,该请求包含读者学号;

微信服务器通过超文本传输协议提交(httppost)方式以可扩展标记语言(xml)格式将所述请求发送给公众账号服务器。

所述公众账号服务器先对所述请求进行身份校验,确保来自微信服务器,对所述校验成功的请求进行解析,获取学号和微信账号,存储在我的结构化查询语言(mysql)数据库中,为信息查询模块调用学号做准备。接着分析指令内容,将分析出来的请求进行业务逻辑处理,启用相应的信息查询模块,与数据库建立查询链接,得到查询结果。把处理结果转换成所述可扩展标记语言格式的字符串后发送给所述微信服务器。所述用户取消所述书屋微信公众账号关注后,将从所述数据库中删除存储的所述用户学号相关信息。

从腾讯官方文档接入指南可以了解到,要使用公众平台开发模式,必须先填写接口配置信息中的url和token,这就要求开发者拥有公网服务器资源,并且按照开发者文档完成相关程序的开发。其次,进行“验证url有效性”,也就是说,我们要开发的请求校验程序必须能够处理httpget请求,而且要对请求者进行身份校验,以确保请求来自微信服务器。请求校验流程如下:

获取所述请求的4个参数,签名(signature)、时间戳(timestamp)、随机数(nonce)和随机字符串(echostr);将令牌(token)、所述时间戳和所述随机数按字典序排序;将排序后的3个参数按顺序拼接成一个字符串,并对所述字符串进行安全哈希算法1(securehashalgorithm1,sha1)加密;将经过所述安全哈希算法1加密后的字符串与所述签名参数进行对比,如果相等则该请求来自微信服务器,需要原样返回所述随机字符串参数。

所述微信服务器将所述处理结果发送给用户所述客户端。

为实现上面请求校验流程,首先新建一个web项目,在项目的src目录下创建一个普通java类signutil,使用这个类对请求校验流程的实现进行了封装,可以在servlet中调用。然后创建一个servlet类,该类用于接收get请求传递的4个参数,调用signutil工具类中封装的checksignature()方法进行请求校验,若校验成功,将接收到的参数echostr原样返回。

上述servlet类的dopost()方法中完成了消息的接收与响应,其中还缺乏一个很重要的消息处理工具类messageutil,该类主要包含了解析请求消息和响应消息对象转xml中涉及的方法。在messageutil类中定义了一系列成员变量,包括请求消息类型(文本、图片、语音、视频、地理位置、链接和事件推送)、事件类型(订阅、取消订阅、扫描带参数二维码、上报地理位置和自定义菜单)和响应消息类型(文本、图片、语音、视频、音乐和图文)。

以学号为2016666666666的读者借阅情况查询为例,在微信上查询,首次需发送“b#2016666666666&123456”指令(学号和密码)绑定学号。当绑定成功后,发送“borrow”借阅查询指令,则收到借阅书目信息。

以学号为2016666666666的读者借出情况查询为例,在微信上查询,发送“loan”指令(需在已绑定学号的情况下),则收到借出书目信息,该书目信息与在应用系统中查询结果是一致的,满足了读者对信息快速查询的需求。

公众账号服务器通过网上书店畅销排行榜定期为用户推荐热门书籍,例如当当网、京东、亚马逊等网上书店,统计畅销排行榜,省去读者寻找书籍的时间。采用基于标签的协同过滤推荐算法为所述用户推荐书籍,包括以下步骤:

将用户-标签-书籍三维关系分解为用户-标签、标签-书籍2个二维关系,在用户-标签关系中计算用户对标签标注频率和标签对用户的逆向频率,在标签与书籍关系中计算标签对书籍标注频率和频率对标签的逆向频率;

构建用户对资源的兴趣模型,分别计算用户与标签的关联度、书籍与标签的关联度,再计算用户对书籍的兴趣;

计算书籍的相似度,根据不同书籍被同一标签标注的次数评估书籍之间的相似度,采用jaccard系数计算得到书籍的相似度;

预测目标用户对待推荐新书籍的兴趣度,根据构建的用户对书籍的兴趣模型,以及待推荐新资源与已标注书籍的相似度计算得到目标用户对新书籍的兴趣度;

将目标用户对于新书籍的预测兴趣度按照从大到小排序,取出排名靠前的书籍作为最终推荐集并输出。

本发明为了实现书屋业务嵌入微信应用,并降低程序的开发难度,选择javaservlet环境,并基于开源sdk控件进行开发;选择eclipse开源工具,使用开源框架dom4j和xstream来实现xml消息的解析与封装等工作。

本发明基于javaweb微信公众平台下的个性化书屋的设计与实现,系统地介绍了设计思路、具体设计和最终实现效果。本发明还可进一步优化,利用网络爬虫,获取互联网庞大数据进行分析后,给予读者推荐书籍,同时扩展和推荐好友的功能,并利用学校组织者身份对公众号进行认证(帐号主体为个人时,无法开通微信认证),增加自定义菜单权限,将查询指令方式转换为菜单向导方式,从而提升用户应用体验,为用户提供更多便捷服务。

尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1