- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
自从2012年8月华中科技大学推出首个国内高校官方微信后,越来越多的高校已陆续开通了微信公共账号。其中,除部分高校开发了专门的微信平台系统外,大部分高校都还停留在使用“关键词自动回复”的简单交互层面,即在微信提供的管理后台中设置多种关键词及其对应的回复内容,一旦用户输入了某个关键词,则返回其对应的预设内容。关键词自动回复能够实现一些初级的匹配功能,但无法实时查询和返回高校各个业务系统中的数据信息,也无法实现上下文交互,更无法深入使用微信公共平台提供的各种自定义功能。
本文梳理了当前高校微信公共平台的各种功能,以华东师范大学现有信息化应用系统作为数据基础,通过使用CodeIgniter敏捷开源框架开发富有交互性的微信公共平台,分析和阐述了平台关键功能实现过程中存在的问题,并提出相应的技术解决方案。
微信公共平台运行机制
微信公共平台的通讯路线可简单归纳为“用户-微信服务器-平台服务器-微信服务器-用户”,我们可以将每一次通讯视为一次交互过程,如图1所示。用户是交互过程的发起人,通过在微信程序中向公共账号发送消息来启动交互。微信服务器是交互的信息中转站,消息被直接发送至微信服务器,服务器再根据该公共账号所设置的模式类型来确定消息的处理方式。当该账号为简单的编辑模式时,微信将通过诸如关键词回复等功能对消息进行匹配,直接将匹配结果返回给用户。而当账号设置为开发模式时,微信服务器将把用户发送的消息以XML数据的形式发送至公共账号预设的接口,即平台服务器。平台服务器是交互的信息处理方,其核心是由公共账号管理者自主搭建的Web应用程序。平台服务器在接收到来自微信服务器的数据后,根据数据中包含的消息类型和关键词内容准备相应的回调格式和信息,并按照微信规定的消息格式返回响应数据。微信服务器在收到该响应数据后,再将其中的内容信息以规定的格式发送给用户,完成整个交互过程。微信公共平台开发的主要任务即搭建其中的平台服务器,创建Web应用程序来处理所有的信息请求任务,向微信服务器返回相应的数据内容。
图1 微信公共平台通讯机制
微信公共平台的接口主要包含三大类。一类是接收用户消息接口,其中包含文本信息、图片信息、地理位置信息、链接信息等类型,平台服务器通过这些接口从微信服务器推送的数据中获取相应内容。另一类是回复用户消息接口,其中包含文本信息、图文信息和音乐信息等类型,平台服务器将根据回复消息的格式,选择相应的接口向微信服务器回调数据。第三类为事件推送接口,包含了用户的关注和取消关注两类事件接口,用于平台服务器向新近关注用户发送欢迎消息。
基于微信公共平台简洁的运行机制,我们选择了轻量化的CodeIgniter框架来作为平台的开发工具。CodeIgniter框架的优点是架构简单、配置灵活,拥有出色的运行性能,且其运营成本低、开发周期短,特别适合于高校自主开发微信平台。
基于CodeIgniter框架的平台设计
1. 设计模式
CodeIgniter框架是基于“模型-视图-控制器”的MVC模式的,我们在微信公共平台开发中也遵循了这一设计模式,以实现逻辑和表现层面的分离。其中,模型(Model)代表了数据结构,在本平台中主要表现为一个模型类,实现平台数据的读取、插入、更新、删除等功能。视图(View)代表了展示给用户的信息,即平台中展示给用户的各种网页,包含了用户授权的相关页面模板。控制器 (Controller) 是模型、视图和其他资源之间的中介,在本平台中主要用于调度各种数据,创建消息处理流程。由于微信平台不需要过多向用户展示网页,其数据也基本来自其他信息化系统的接口,因此本框架中的模型和视图类型都较为简单。平台的核心在于控制器,其主要功能都由控制器完成,其中包括消息的接收、判断、处理和回调等。
此外,平台将一些核心的功能类和常用函数抽离出来,分别创建对应的装载类(Libraries)和辅助函数类(Helpers),在运用时按需加载,以简化控制器中的功能代码,提高系统运行效率。在装载类中包含了网页HTML标签内容的采集、正则解析,以及模板解析等复杂的功能类库。在辅助函数中则包含了各种单独的函数,包括各种数据接口的连接、时间日期处理、敏感词过滤、单位换算等。
2. 数据库设计
平台采用MySQL数据库。该库中主要的数据有三种,分别是用户(User)、规则(Rule)和消息(Message)。User表中储存了每个微信用户的用户号(OpenId),以及上一次操作的状态记录、学号和工号信息等,用于实现用户的上下文交互,使用各种校内信息系统的授权功能。Message表中储存了用户向微信公共账号发送的所有消息,是平台消息的历史存档。Rule表中包含了管理员预设的消息响应规则,是平台消息处理流程的具体依据。
除以
文档评论(0)