微信公众平台在翻转课堂中的应用研究
2015-06-19倪礼豪
倪礼豪
摘要:微信公众平台在教育中的研究只涉及消息推送、师生互动、针对具体一门学科在教学设计方面的支持。为了提高对翻转课堂教学活动更好的信息化支撑,利用微信公众平台支持通过编程接口,实现对用户管理、对文本、语音、视频、图片、位置信息、相册等媒体内容的管理和本地化存储的功能,结合web3.0的技术特性,设计了基于微信公众平台二次开发的多终端应用系统。通过实践证明,平台能有效的支撑翻转课堂教学与管理。
关键词:计算机软件;微信公众平台;翻转课堂;二次开发;多终端应用系统
中图分类号:TP311 文献标识码:A DOI:10.3969/j.issn.1003-6970.2015.04.026
0.引言
在已有的研究中,关于微信、微信公众平台在教学中应用的研究主要有以下两类。
第一类,作为信息传播的途径和工具,文献1探究了微信对大学生道德教化的多方面影响,基于微信的大学道德教化信息的传播与优化径路及微信的信息传播机理。文献2构建了在微信支持下的混合式学习模式[引,文献3证明了微信能有效的促进混合式学习。
第二类,研究微信、微信公众平台的构建,文献4认为微信公众平台教学效果预期佳,文献5和文献6阐述了微信公众平台支持下的翻转课堂模式,文献7通过创建一个名为“翻转课堂”的QQ群来实施教学,文献8主要阐述微信公众平台辅助课堂教学模式构建。微信公众平台在翻转课堂中对翻转课堂创新性学习未见论述,本文设计并实现了基于微信公众平台的多终端系统,以支持翻转课堂的教学活动。
1.微信公众平台在翻转课堂中的支撑作用
1.1微信公众平台接口支持
微信公众平台服务号提供了丰富的接口,有对话服务、功能服务和网页服务三大类,对话服务中基础支持部分能获取access token和微信服务器的IP地址,这为实现双向认证和下载多媒体资源准备了条件,接受/发送消息接口为用户和公众平台之间交互信息准备了条件,接受消息和自动回复次数无限制,并且可以通过用户管理接口、实现对用户分组、设置备注名、获取用户基本信息、获取用户列表、获取用户地理位置信息;功能服务主要是面向微商的;网页服务提供了Web页面对用户的管理接口,网页服务次数无限制。
1.2微信公众号在学习中的支撑手段
在翻转课堂中,学生的个性化学习成为了主体,如何引导学生高效的自主学习,实现学生与教师之间的有机沟通,学生之间的协作学习,学生探索过程中的技术支撑,并对学习过程进行有效的跟踪,实现自我管理与评价是亟需解决的问题。
(1)多角度的技术支持,促进个性化学习
在翻转课堂中,学生的自主探究式学习主要在课外进行,学习的起点是老师布置的问题、预先设置的教学目标、自己感兴趣的问题等。教师在课堂上可以把自己的问题截屏、拍摄成图片、一段录像或者一段录音,发送到微信公众平台,利用微信公众平台提供的多媒体下载接口,通过编程,应用服务器自动把提交的素材下载到本地服务器,素材的描述性信息存储在数据库,由于每个微信号在具体公众平台上有且只有一个永久的Openld,这样就实现了所发送的内容与发送者身份之间的双向认证,并且实现了在本地应用服务器的持久化。在发送完素材后,微信公众平台会向发送者回复发送状态标识码,如果发送成功,媒体并被本地应用服务器保存,则回复的标志码中带有该媒体在数据库中保存的描述性信息的Id,此时,通过回复带有该Id号的说明文字,即可以添加对素材的说明,从而解决了多媒体素材的自明性问题。多媒体素材与其描述性信息一一对应,描述性信息满足关系型数据库的特点,这样,通过微信就实现了媒体素材与Web平台的融合,借助手机、平板电脑等为素材的制造和发布带来了极大的便利。
在翻转课堂的自主探究式学习过程中,学习对象、学习场景、学习方式等都发生了很大的变化,突破了传统的学生在书桌前看黑板、教科书或者参考书,用笔演算、记笔记等模式。比如在英语发音训练过程中,对学生发音进行录音,通过与标准发音对比,更能发现问题;又比如舞蹈课,录像则是记录排练过程的最好方式;有些实践课程,需要我们动手制作,通过拍照提交学习成果就能避免信息丢失的问题;在学习的过程中,对于重要的场景,演讲、讲解、讨论、个人灵感捕获等等往往可以通过拍摄音频视频文件。
(2)学习过程有效跟踪、实现学习自我管理与评价
在探索式学习的过程中,学生可以通过文字、图片、音频、视频的形式记录、保存学习内容和学习成果,形成自己的学习素材,微信公众平台与本地的Web应用服务器通过信息交互,能实现永久的存取素材。依据学习者的微信号在具体公众平台具有唯一Openld的特点,实现学习者与公众平台之间的双向认证;向公众号发送的文字、图片、音频、视频携带了Userld,即保存在本地服务器的素材与拥有者关联,素材可以被属主进行编辑、修改、删除、备注操作,从而实现有效的管理。
本地Web服务器一方面是借助关系型数据库,以关系模式存储用户的学习素材;另一方面则提供Web方式的管理和信息检索,实现了手机、Pad等移动终端和桌面应用同步共享一个信息系统,发挥各自的长处。这样设计的目的在于:学习者能方便的管理、跟踪自己的学习;构建学习圈,方便进行协作学习;自觉形成评价数据。
(3)保障机制
可控的权限管理机制,由于公众号与关注者微信号实现了双向认证,发送的素材携带了发送者的Openld,每个用户的每个素材均有Id号。这样,公众平台、关注者、素材之间就一一对应,在关系型数据库的支持下,就能方便的实现权限管理。
同一个微信公众平台的关注者,在实名认证的前提下,容易构建学习圈,Web方式下的资源共享也有利于这种学习圈的形成和维系。在Web方式下,可以共享出自己的学习素材,也可以搜索、收藏他人的学习素材,并且可以就某一问题创建讨论组等等,Web3.0的最新技术均适用于此。endprint
手机、Pad等移动设备成为了学习过程中贴身学习工具,且其固有的属性无法被电脑等其它设备取代,比如手机中内置的传感器装置。学习过程沉淀在Web系统中,便于学习过程自我管理与维护,而不是仅仅复习笔记,通过时间的积累,有助于构建知识地图,并实现自我完善。同时,也记录了学生学习轨迹,对学习过程的有效跟踪,为个性化辅导提供了依据,在翻转课堂的讨论环节更具针对性;也能了解在团队协作学习过程中各学生的角色及其作用,为学习成绩的评价提供依据。
2.面向翻转课堂的微信公众平台解决方案
2.1应用体系结构
系统的体系结构是多层结构,第一层是数据库服务器,第二层是Web服务器,第三层是微信服务器,用户通过智能设备与公众平台交互实现与微信服务器交互,PC浏览器与Web服务器交互,核心是自建的Web服务器。
2.2微信公众平台接口功能实现关键点
(1)Web服务器与公众号之间的相互认证
通过在微信公众平台(https://mp.weixin.qq.com/)的服务器地址栏里设置应用服务器处理页面,在微信公众平台设置的应用ID、应用密钥、令牌、消息加解密密钥作为应用服务器入口文件eheekSignature函数的参数,进行应用服务器与微信服务器之间的双向认证。
(2)个人微信号和公众平台之间的认证
每个微信号在具体的公众号平台对应唯一的一个OpenlD,用户在关注公众平台时公众平台响应一个验证码给用户,用户凭此验证码以Web表单的形式在PC上完善自己的个人身份信息,即完成平台的注册,系统管理员以Web表单的形式在PC上审核注册信息。在实际使用时,用户在公众号平台上的身份验证借助该用户的微信号登录验证完成,无需额外验证,通过Web管理自己向公众平台发送的素材,则需要进行身份验证,这样就实现了关注者账号、公众号、Web应用三者之间的相互认证。
(3)获取用户OpenID
实现关注者账号的激活、审核,关注者账号实现Web验证,它们的核心问题是要解决OpenlD,当用户向公众平台发送文本信息时,实际是向服务器发送了一个POST请求。数据基于XML格式,标签有ToUserName、FromUserName、CreateTime、MsgType、Content,分别表示开发者微信号、发送者微信号、消息创建时间、消息类型、发送的内容。在程序中获取FromUserName的值即得用户的OpenlD。
(4)自定义菜单
在基于公众平台的二次开发中,自定义菜单主要支持上报地理位置信息、照片发送,支持从相册选择照片或者拍摄照片发送、语音上传、语音识别、视频拍摄、位置信息发送、从服务器下载媒体等。
自定义菜单分三步:第一步,获取令牌access token;第二步,定义JSON字符串,描述菜单;第三步,向服务器POST该JSON,鉴于获取令牌的代码在微信公众平台的特定性。下面完整给出方法。
事件推送到微信公众平台的后台是作为事件(Event)来处理的,如果是上报地理位置信息,事件类型为LOCATION,可以获取到地理位置维度(Latitude)、地理位置经度(Longitude)、地址位置精度(Precision)。自定义菜单的事件类型是CLICK,点击菜单跳转链接时的事件是View在程序中,通过SpostObi-Msg Type可以获取到类型值even。通过Sobieet->Event可以获取到事件的类型,比如LOCATION,CLICK,VIEW等。在JSON中,如果是自定义的点击菜单,则要指定type、name和key三个参数,在程序响应时,通过obieet->EventKey获取到设定的key值,即公众平台能感知到点击了哪个菜单;如果是跳转型的,则要指定type、name和url三个参数,在点击菜单时,直接跳转到url指定的页面。特别要指出,在最新的V6,1版的微信中,发送位置的事件类型为:location select,发送图片的事件类型为pie photo or album,支持拍照或者从相册选择。
2.3扩展功能:Web管理
该微信公众平台的设计,最突出的特色在于依赖微信公众平台的同时结合了Web系统,两者共一个关系型的数据持久层,相互协作而又保持逻辑的一致性。
要实现的关键点有两个:关注者账号管理,媒体素材管理。
当用户关注公众平台时,系统后台检测该Openid在本平台是否有记录,如果尚未记录,则向user表插入一条记录,保存userid和user openid字段的值,其中userid是user表的主键,user openid即Openid,形如ohXqXJii96 vx28ElnNbuGBnGHk的字符串。Openid在user表中是唯一的,可以作为user表的主键,本设计中增加了userid作为主键的目的是在应用过程中公众平台与用户交互信息更有友好。然后响应一个信息给关注者,提示用指定的格式设置用户名和密码,比如#1#{u}#{password},这样就可以更新userid为1的这条记录,指定USer name为{userName}设定的值,user pwd为{password}设定的值。这样,该用户就在该公众平台设置了自己的账号信息,在PC上可以通过web表单进一步完善用户信息。
管理下载的媒体,通常,各类媒体,包括文本,在微信公众平台只保留5天,本方案需要永久保留图片、音频、视频文件,下载多媒体文件分三步。
(1)调用getAccessToken()方法验证身份,返回值赋给$access token;
(2)拼接url,在微信提供的URL中发送access token和&media id属性;endprint
(3)编程实现下载,Snoopy是个值得推荐的组件。对于下载的组件可以通过uuid来命名文件,解决文件重名的问题,进而把文件的描述性属性保存到数据库。
在本地Web服务器保存了多媒体素材,就可以通过Web编程实现管理与分享。用户通过对多媒体素材的精细化权限控制,可以分享、收藏相关材料,跟踪个人学习轨迹构建个人学习空间。经过一定的数据积累,可以形成基于个性化推荐的智慧型学习系统,对于教师、学校等教育工作做而言,分析这个全程跟踪了学习个体的教育数据对改进教育意义重大。
3.一个例子
结合应用实际,开发了一个基于微信公众平台的应用,通过抽象,保留核心的属性,得到系统的E-R图如图1所示。
系统核心E-R图包括两个实体和一个联系:user(微信公众平的关注者)实体和content(媒体素材)实体,这两个实体之间是一对多的关系,并得到“用户收集的媒体”这个联系,其它属性根据业务实际的需要,可以合理扩展。并且可以增加对媒体的评论等其它实体,这些都依据实际需要而定。
业务流程,本应用包括客户微信号与公众微信号之间的信息交换和共享的基于Web形式的应用,这两者共享一个数据库,包括数据库中表的记录和Web中的用户媒体文件。微信号与公众平台之间的信息流转流程如图2所示。
用户发送的文本直接保存在数据库,图片、音频、视频的相关属性保存在数据库的同时,媒体文件也存储在了Web应用服务器。Web方面的开发在此不作叙述。
当用户关注了公众号后,可以用微信与公众平台交互信息,比如向公众平台发送图片,可以从相册选择,也可以拍摄照片,当上传成功后,公众平台会回复类似“您的图片已经保存,您可以回复‘#62#说明文字以添加对图片的说明,方便查询。您可以登录http://xxx.duapp.com/weixin/images/管理您的图片”。其中62为该媒体素材在数据库中记录的contentld,此时,回复群62#三角函数笔记,即更新了该素材的描述信息,更新成功后,公众平台响应“您已经对图片添加说明:三角函数笔记”。
通过PC的浏览器管理用户自己的素材,打开Web应用服务器的网址,以素材添加的时间逆序显示该素材的缩略图,点击该缩略图可以查看原图及其说明。
4.结语
本文研究了微信公众平台在翻转课堂中的技术支撑作用,结合教改实际,开发了基于微信公众平台与Web3.0相结合的应用系统,通过8000余名注册学生、涉及6个专业、72门课程为期一个学期的试用,系统运行平稳,在实际翻转课堂的实施中发挥了良好的作用。endprint