浅谈基于微信的移动教学平台的设计与开发
2019-09-24常汉杰付赛红
常汉杰 付赛红
摘要:随着智能手机的不断普及和微信使用者不断增加,以微信作为移动教学平台基础,通过对公众平台的深度开发使学习者所需的学习功能在公众平台中能够得以实现。该文主要论述如何将需要提供给学习者的学习功能和微信相结合,从而搭建自己基于微信的移动学习平台。
关键词:微信;公众平台;移动教学;LAMP
中图分类号:TP393 文献标识码:A
文章编号:1009-3044(2019)19-0067-03
Abstract: With the popularization of intelligent mobile phone and WeChat users continue to increase, with WeChat as a basis for mobile learning platform, through the depth of the development of the public platform to make learners required learning function can be achieved in the public platform. This paper mainly discusses how to combine the learning function that needs to be provided to the learners, and to build up their own mobile learning platform based on WeChat.
Key words: WeChat; public platform; mobile teaching; LAMP
1 緒论
移动学习是一种在移动设备帮助下的能够在任何时间、任何地点发生的学习,移动学习所使用的移动计算设备必须能够有效地呈现学习内容并且提供教师与学习者之间的双向交流。移动设备主要包含了智能手机和各类PAD等智能终端,目前基于这些智能终端进行移动教学平台开发的软件开发方式主要可分为了APP开发和微信公众平台开发。这两者之间各有优缺点,本文主要介绍通过微信公众平台的开发方式。
1.1 微信的优势
微信是一款跨平台的通讯工具,支持单人、多人参与,通过手机网络发送语音、图片、视频和文字。目前微信的使用人数据最新统计已经有9亿多了,几乎人人都已拥有微信号,微信已成为目前国内使用人数最多的移动端IM聊天工具和社交软件。
1.2 公众号
微信公众号内植于微信的社交环境下,导流和呈现的成本大大低于传统意义上的APP,因而产生了对后者的替代效应。微信公众号对开发者开放了开发功能,开发者只需关注在公众号上的功能开发,然后让用户关注即可。这样,公众号的开发俨然类似于开发APP软件,而微信则已类似于一个新的桌面系统。
1.3 开发工具
本文所介绍的系统采用的开发工具是基于LAMP(Linux+Apache+Mysql+PHP)架构,在与微信的接口关系上是按照微信的开发标准,内置网页的前端设计主要是基于HTML5、Jquery和Bootstrap,课件点播技术是基于阿里云的CDN网络和相应的OSS数据存储结构。
2 移动教学平台所需功能
教学平台的“移动化”主要是针对传统PC系统的“非移动”而言的,主要的优点体现在可以自由自在、随时随地进行不同目的、不同方式的学习。移动化的学习方式是参与学习的主体者在通过使用移动端设备在学习环境的选择上更加自由和灵活。
根据移动学习的特点,本系统开发主要功能包括了:资料阅读、信息推送、教学互动、作业练习、课件点播和个性通知等。
基于微信的移动教学平台就是能将上述的几个学习功能通过使用微信公众平台的开发功能,在公众平台内实现。
3 系统设计
3.1 开发准备
3.1.1 接入微信公众号
在成为微信开发者后需要填写服务器地址(URL)、Token和EncodingAESKey。URL地址是自己服务器的一个网页地址,其作用是将你的服务器和微信相连,起到了纽带作用。Token的作用是生成签名而验证安全性。
3.1.2 获取access_token
access_token是公众号的全局唯一接口调用凭证,公众号中调用的任何一个接口都需要获取access_token,获取access_token需要提供公众号的APP_ID和AppSecret。其调用地址为:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET。微信为了安全性在获取access_token中增加了有效性限制和调用频率的限制,所以在系统中需要增加中控服务器用于定时获取access_token。
3.1.3 创建个性化菜单
一个公众号需要创建一些菜单从而使学习者能够清楚自己需要的功能在哪里获取。微信公众号中将菜单的呈现通过JSON的数据格式来包装,然后通过一个POST调用传送至微信服务器。示例如下:
3.2 功能实现
3.2.1 身份绑定
学习者在学习平台上的唯一号,一般是学号或者是用户名,然而微信也有一个唯一号,被称为OpenID,不管用户使用了哪一台设备登录微信,他所对应的OpenID号都是唯一的。所以,首先需要将OpenID号和学号实施绑定,这样用户以后打开这个公众号后系统就能自动判断出是哪一位学生了。
这里的Url字段就是你设计好的一张绑定页面,用户点击这条信息后将跳转到该网页中,相应的OpenID值可以通过参数传递,也可以通过session等方式进行传递到该网页中。
身份绑定的第二种方法是通过网页授权,其实现机制是利用OAuth2.0进行鉴权。设计方法是,在用户点击菜单时直接让其跳转到微信的OAuth页面上,如:https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=http://yourhostname/callback.php&response_type=code&scope=snsapi_base&state=1#wechat_redirect。這里采用的是以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的OpenID的,并且是静默授权并自动跳转到回调页的,用户感知的就是直接进入了回调页,回调页面就是redirect_uri参数。
在回调页面中可以获取一个code值,通过code换取到一个特殊的网页授权access_token,然后将code值和相应的数据发送至如下地址,便能获取到OpenID值了,https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code。返回的是一个json数据包,直接读取openid字段即可。
3.2.2 教学互动
微信中的教学互动比在传统的PC端中就更加有效了,除了在学习平台里可以设计传统的课程论坛,学生有问题时在论坛中发帖,老师需要登录后才能进行回帖。但当学生急需老师的回答时,课程论坛的时效性限制了这一功能。
微信公众号中的客服功能便能做到上述的要求,实现如下:
通过GET此URL可以获取老师列表和相应的客服状态,https://api.weixin.qq.com/cgi-bin/customservice/getonlinekflist?access_token=ACCESS_TOKEN。
在列表中点击相应的教师,便可以在公众号的输入状态下直接输入相应的问题进行咨询。后台只需要将该用户的请求通过发送如下xml包。
3.2.3 个性化通知
微信中最常用的一个功能便是信息推送,但信息推送只能便每个人看到的信息是一模一样的,并且还有推送频率的限制规定。在实际应用中,其时整班学生在一起学习的过程中,他们的学习习惯和学习进度都是有着个体差异的。如在某个时候可能需要提醒同学们需要完成哪些作业,但是同学们的完成进步不一,所以一定要使用个性化的通知,同样也包括了成绩和缴费通知等等。
为了完成上述需求,主要是用到了微信中的模板消息接口,具体流程如下:
1)从模板库中找到相应的模板添加到我的模板中;
2)根据需要发送的模板消息中的data部分设置好相应的数据 ;
3)然后将发送的数据进行封装成json数据,PHP示例如下:
最后将数据POST至https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN。其中template_id为模板的id号,touser则是用户的openid号,data则是需要发送的具体内容,按照模板内容结构填好。
4)老师需要发送上述模板消息时,只要将相应消息按照模板结构写入excel中,然后导入至平台中,平台便可以通过逐条读取并发送,从而完成一次个性化的通知需求。
3.2.4 课件点播
课件点播是移动学习平台中主要的一个功能,当用户点击相应的课程后则显示给用户一张相应的课件点播列表。这其实时就是显示了一个移动版网页,当然这个网页上已经获取到了相应的openid,能够判断出用户能否具有点播相应的课件资源的权限。
在移动端的网页设计本系统采用了HTML5+Bootstrap,因为bootstrap具有响应式开发布局和移动设备优先的性能。课件存储采用了阿里云的对象存储(Object Storage Service,简称OSS),OSS具有海量存储和高可靠性的非结构化存储,只需要将相应的课件存储至OSS中对应的Bucket即可。为了实现课件在播放的一些拖拽功能,在课件发布时需要将课件信息分发至CDN(Content Delivery Network)网络上。
4 移动教学平台的改进和展望
本系统已经在我校上线运行了一段时间,系统运行情况良好,响应速度较快,以前学生需要在PC端完成的任务现在可以在微信中就可以完成,系统的实际应用情况也符合当初的设计要求。但在实际应用过程中,也发现了一些需要进一步开发的和完善的功能。
1) 用模板消息功能替代传统的短消息功能,模板消息实现了个性化的消息发送,当然也可以发送类似于短信的内容。随着同学们都关注我校微信平台后,使用模板消息发送替换短信发送已成为可能。
2) 微信快照功能。当学生在学校公众号中学习和观看课件时,突然有朋友发来消息并点击阅读后,学生再次返回到上次的学习页面中则比较烦琐,如有一个微信快照功能,实现一键返回到原有观看页面。
3) 人工智能的使用。任何一个学习者在学习上都存在着惰性,如何设计出一个人性化的学习系统,当用户没能及时完成相关学习需求后,系统能自动的给学习者发出一条学习提醒消息。
参考文献:
[1] 马艳艳. 我国微课程研究现状述评[J]. 软件导刊, 2014(3): 197-199.
[2] 王竹立, 李小玉. 智能手机与“互联网+”课堂[J]. 远程教育杂志, 2015(4): 14-21.
[3] 王朋娇, 蔡宇南, 段婷婷. 微信功能包支持下的移动学习活动设计[J]. 现代远距离教育, 2015(1): 35-40.
[4] 王键, 曹伟. 微信在移动学习中的应用研究[J]. 软件导刊, 2015(10): 196-198.
[5] 庞博, 王朋娇. 微信在大学英语移动学习中的应用探索[J]. 中国信息技术教育, 2015(1): 112-113.
【通联编辑:谢媛媛】